迭代子列表以创建字典

son*_*089 3 python dictionary

我想迭代列表中的子列表以创建一个字典,其中子列表的元素是键,广告值都是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)

但是当我运行这个时,我收到一条消息关键字不能成为表达式.

由于我在键的子列表中有不同的元素,我该怎么做?

nie*_*mmi 6

您可以使用列表中理解和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是可迭代的键,第二个参数是为每个键设置的值.