很抱歉,如果标题不清楚,但这是我正在努力实现的目标。
我有一个dicts列表:
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。
答案 0 :(得分: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"]]
这会就地修改词典。
答案 1 :(得分:1)
如果你想修改现有的词典(请注意,如果你的代码中的其他内容引用了列表中的词典,而不是列表本身,那么theoutoutye的解决方案会产生新的词典,这可能是一个问题。你可以这样做:
for my_dict in l:
my_dict['order'] = tr[my_dict['name']]