python 两个列表到字典

qrjkbowd  于 2022-12-25  发布在  Python
关注(0)|答案(3)|浏览(138)

我有两张单子。

id = [1,2,3]
text = [['a'], ['b'], ['c']]

我需要字典中的输出

[{'ID':1,'TEXT':['a']},{'ID':2,'TEXT':['b']},{'ID':3,'TEXT':['c']}]

我尝试压缩两个列表,但无法达到此输出

c3frrgcw

c3frrgcw1#

你的意思是到建立字典为每一个压缩对的id(注意:这是Python中的保留函数)和文本

result = [{'ID':k,'TEXT':v} for k,v in zip(id,text)]

>>> result
[{'ID': 1, 'TEXT': ['a']}, {'ID': 2, 'TEXT': ['b']}, {'ID': 3, 'TEXT': ['c']}]
pes8fvy9

pes8fvy92#

zip()函数接受2个“可迭代”,并将它们压缩为一个-〉

out = []
for e in zip([1,2,3], [['a'], ['b'], ['c']]):
    out.append({'ID': e[0], 'TEXT': e[1]})

或列出理解-〉

out = [{'ID': e[0], 'TEXT': e[1]} for e in zip([1,2,3], [['a'], ['b'], ['c']])]
hts6caw3

hts6caw33#

假设列表的长度总是相同的,你可以遍历它们,用每个元素构造一个dict,不需要用zip来构造一个“中间”列表:

iid = [1,2,3]
text = [['a'], ['b'], ['c']]
out = []
for i in range(len(iid)):
    out.append({'ID': iid[i], 'TEXT': text[i]})
print(out)

相关问题