我想迭代列表中的子列表以创建一个字典,其中子列表的元素是键,广告值都是0.
例:
keys = [['desk','lamp','printer'],['mouse','chair','desk','pencil']]
Run Code Online (Sandbox Code Playgroud)
我想要输出:
output = [{'desk':0,'lamp':0,'printer':0},{'mouse':0,'chair':0,'desk':0,'pencil':0}]
Run Code Online (Sandbox Code Playgroud)
我尝试了以下但没有奏效:
d = {}
output= []
for i in range(len(keys)):
for w in keys[i]:
output.append(d[w] = 0)
Run Code Online (Sandbox Code Playgroud)
但是当我运行这个时,我收到一条消息关键字不能成为表达式.
由于我在键的子列表中有不同的元素,我该怎么做?
您可以使用列表中理解和dict.fromkeys使用0的价值:
>>> keys = [['desk','lamp','printer'],['mouse','chair','desk','pencil']]
>>> [dict.fromkeys(l, 0) for l in keys]
[{'desk': 0, 'lamp': 0, 'printer': 0}, {'mouse': 0, 'desk': 0, 'pencil': 0, 'chair': 0}]
Run Code Online (Sandbox Code Playgroud)
给定的第一个参数fromkeys是可迭代的键,第二个参数是为每个键设置的值.