Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于另一个列表向dict列表添加键值对_Python_Dictionary - Fatal编程技术网

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