背景
我有一个名为db.py的模块,它基本上由调用db的包装器函数组成。我有一张名为nba的桌子,里面有像player_name,age,player_id等栏目。
我有一个名为db_cache()的简单函数,其中调用db表并请求获取所有player ids。response的输出如下所示
[Record(player_id='31200952409069'), Record(player_id='31201050710077'), Record(player_id='31201050500545'), Record(player_id='31001811412442'), Record(player_id='31201050607711')]然后,我简单地遍历列表并将每一项转储到字典中。
我想知道是否有更多的pythonic方法来填充字典。
我的代码
def db_cache():
my_dict: Dict[str, None] = {}
response = db.run_query(sql="SELECT player_id FROM nba")
for item in response:
my_dict[item.player_id] = None
return my_dict
my_dict = db_cache()发布于 2020-12-03 19:30:58
这是内置到dict类型的:
>>> help(dict.fromkeys)
Help on built-in function fromkeys:
fromkeys(iterable, value=None, /) method of builtins.type instance
Create a new dictionary with keys from iterable and values set to value.我们想要的value是None的缺省值,所以我们需要的是:
my_dict = dict.from_keys(db.run_query(sql="SELECT player_id FROM nba"))请注意,value将被重用,而不是复制,如果您想要使用可变的value,这可能会导致问题。在这种情况下,你应该使用辞典理解,就像@AvihayTsayeg的答案中给出的那样。
发布于 2020-12-03 19:25:22
my_arr = [1,2,3,4]
my_dict = {"item":item for item in my_arr}https://stackoverflow.com/questions/65132676
复制相似问题