繁体   English   中英

将键值对添加到基于另一个列表Python的字典列表中

[英]Adding a key value pair to a list of dicts based on another list Python

抱歉,标题不清楚,但这是我想要实现的目标。

我有一个字典列表:

l = [{'name': 'inAnalysis'}, {'name': 'inQuest'}, {'name': 'inDevelopment'}]

还有这样的翻译表:

tr = {'inAnalysis' : 1, 'inDevelopment' : 2, 'inQuest' : 3}

我想像这样向l添加键值:

l = [{'name': 'inAnalysis', 'order' : 1},
     {'name': 'inQuest', 'order' : 3}, 
     {'name': 'inDevelopment', 'order' : 2}]

如何将l的值与tr的键匹配,并通过键order获取其值并将其添加到l 任何帮助,将不胜感激。 我正在使用Python 2.6。

您可以使用列表推导来动态生成字典,如下所示

print [{"name":dic["name"], "order":tr[dic["name"]]} for dic in l]

输出量

[{'name': 'inAnalysis', 'order': 1},
 {'name': 'inQuest', 'order': 3},
 {'name': 'inDevelopment', 'order': 2}]

或者,您可以使用以下内容

for dic in l: dic["order"] = tr[dic["name"]]

这样就可以修改字典。

如果您想修改现有的字典(请注意,thefoutheye的解决方案将创建新的字典,如果您的代码中的其他内容持有对列表中字典的引用,而不是列表本身,这无疑是个问题),您可以这样做:

for my_dict in l:
    my_dict['order'] = tr[my_dict['name']]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM