如何解决如何从列表列表中的键和值列表中制作字典列表
我有两个列表: 首先是键列表, 第二个是具有列表的值列表。 我想列出字典,但我不知道该怎么做。
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'}]
解决方法
使用 list comprehension
、zip()
和 dict()
。 zip(*values)
将从 item
中的两个子列表中产生对 values
。 dict(zip(keys,item))
将从由 dict
zip(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'}]
,
keys=['number','double']]
newList = []
for i in range(len(values[0])):
tmp = {}
for j,key in enumerate(keys):
tmp[key] = values[j][i]
newList.append(tmp)
print(newList)
输出:
[{'number': 1,'type': 'double'}]
未来提示:您可以使用 enumerate(list)
而不是使用 i = i+1
或 i += 1
out_list = []
for i in range(len(values[0])):
out_list.append({
keys[0]: values[0][i],keys[1]: values[1][i],})
print(out_list)
#[{'number': 1,'type': 'double'}]
,
您还可以将 list comprehension 与 zip 结合使用:
.then
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。