Python 基于另一个列表向dict列表添加键值对
对不起,如果标题不清楚,但这里是我试图实现的 我有一个目录:Python 基于另一个列表向dict列表添加键值对,python,dictionary,Python,Dictionary,对不起,如果标题不清楚,但这里是我试图实现的 我有一个目录: l = [{'name': 'inAnalysis'}, {'name': 'inQuest'}, {'name': 'inDevelopment'}] 还有这样一种翻译表: tr = {'inAnalysis' : 1, 'inDevelopment' : 2, 'inQuest' : 3} 我想向l添加键值,如下所示: l = [{'name': 'inAnalysis', 'order' : 1}, {'name'
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
?任何帮助都将不胜感激。我使用的是Python2.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"]]
这会在适当的位置修改词典。您可以使用列表理解动态生成这样的词典
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"]]
这会修改现有的词典。如果要修改现有的词典(请注意,Outheye的解决方案会生成新的词典,如果代码中有其他内容引用列表中的词典,而不是列表本身,这可能是一个问题),可以执行以下操作:
for my_dict in l:
my_dict['order'] = tr[my_dict['name']]
如果要修改现有词典(请注意,Outheye的解决方案会生成新词典,如果代码中的其他内容引用了列表中的词典,而不是列表本身,这可能会成为一个问题),可以执行以下操作:
for my_dict in l:
my_dict['order'] = tr[my_dict['name']]
@在我点击解决方案上的提交按钮前2秒,您成功地更新了他的解决方案:P@thefourtheye在我点击我的解决方案上的提交按钮前2秒,成功更新了他的解决方案:P