首页 > 解决方案 > 如何从列表列表中的键列表和值列表中创建字典列表

问题描述

我有两个列表:第一个是键列表,第二个是具有列表的值列表。我想列出字典,但我不知道该怎么做。

keys=['number','type']
values=[[1,2,3,4],['bool','int','float','double']]

我正在尝试做点什么,但我正处于死亡的边缘。

j=0
for k in keys:
    i=0
    for v in values[j]:
        a=keys[j]
        a=a+':'
        a=a+str(values[j][i])
        print(a)
        i=i+1
    j=j+1

我想要这样的输出:

list=[
    {'number':1,'type':'bool'},
    {'number':2,'type':'int'},
    {'number':3,'type':'float'},
    {'number':4,'type':'double'}]

标签: pythonlistdictionarydimension

解决方案


使用list comprehension,zip()dict(). 将从中的两个子列表中zip(*values)产生对。将从元组中生成列表中的每个,由itemvaluesdict(zip(keys, item))dictzip(keys, item)

keys=['number','type']
values=[[1,2,3,4],['bool','int','float','double']]

spam = [dict(zip(keys, item)) for item in zip(*values)]
print(spam)

输出

[{'number': 1, 'type': 'bool'}, {'number': 2, 'type': 'int'}, 
 {'number': 3, 'type': 'float'}, {'number': 4, 'type': 'double'}]

推荐阅读