我想遍历列表中的子列表来创建一个字典,其中子列表的元素是键,而值都是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键,第二个参数是为每个键设置的值。

10-07 18:23