首页 > 解决方案 > 将列表项转换为单个列表中的多个字典

问题描述

我正在开发一个创建 Python 字典的项目。我有两个清单:

table_name=['new1','new2']
field_names=[['apple','banana'],['orange','Mellon']]

我试过这段代码:

dct = {}
for x in range(0, len(table_name)):
   dct[table_name[x]] = field_names[x]

我得到了这本词典:

{"new1" : ['apple','banana'], "new2" : ['orange','Mellon']}

我想要这样的东西:

{"new1" : [{'name':'apple'},{'name':'banana'}], "new2" : [{'name':'orange'},{'name':'Mellon'}]}

我希望有人可以分享完成这项任务的正确方法。

标签: pythonpython-3.xlistdictionary

解决方案


你可以zip在这里。

table_name=['new1','new2']
field_names=[['apple','banana'],['orange','Mellon']]
d1={}
for k,v in zip(table_name,field_names):
    d1[k]=[{'name':i} for i in v]

{'new1': [{'name': 'apple'}, {'name': 'banana'}],
 'new2': [{'name': 'orange'}, {'name': 'Mellon'}]}

上述的字典理解将是:

{k:[{'name':i} for i in v] for k,v in zip(table_name,field_names)}

推荐阅读