我想遍历列表中的子列表来创建一个字典,其中子列表的元素是键,而值都是0。
例子:
keys = [['desk','lamp','printer'],['mouse','chair','desk','pencil']]
我想要输出:
output = [{'desk':0,'lamp':0,'printer':0},{'mouse':0,'chair':0,'desk':0,'pencil':0}]
我尝试了以下方法,但没有成功:
d = {}
output= []
for i in range(len(keys)):
for w in keys[i]:
output.append(d[w] = 0)
但是当我运行这个时,我得到一个消息关键字不能是表达式。
既然我在键的子列表中有不同的元素,我该怎么做呢?
最佳答案
您可以使用列表理解和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}]
给
fromkeys
的第一个参数是一个iterable键,第二个参数是为每个键设置的值。