我有两个列表
id = [1,2,3]
text = [['a'], ['b'], ['c']]
我需要像
这样的字典输出[{'ID':1,'TEXT':['a']},{'ID':2,'TEXT':['b']},{'ID':3,'TEXT':['c']}]
我试过压缩两个列表,但无法达到这个输出
您的意思是为每一对压缩的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']}]
zip()
函数接受2个"iterables"并将它们压缩成一个->
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']])]
假设列表总是相同的长度,您可以遍历它们,用每个元素构造一个字典。不需要使用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)