所以我在python(2.7)中有2个字典列表,如果条件适用,我想更新列表中的每个字典。
示例:
first=
[
{'name': 'John', 'last_name': 'Doe', 'age':'27'},
{'name': 'Jack', 'last_name': 'Sparrow', 'age':'26'}
]
second =
[
{'full_name': 'John Doe', 'height':130},
{'full_name': 'Donkey Kong', 'height':156},
{'full_name': 'Jack Sparrow', 'height':180}
]
现在我想更新第一个dict,如果name + last_name等于full_name,并将height参数添加到它。
这个工作得很好,但它非常难看,如果我有十个字段,如高度'添加:
for i in first:
for k in second:
if (i['name'] + ' ' + i['last_name'] == k['full_name']):
i['height'] = k['height']
任何好方法都可以在" Pythonic"方式是什么?
非常感谢!
答案 0 :(得分:2)
您可以将第二个词典列表重组为一个词典:
from google.appengine.api
然后使用second_dict = {i['full_name']: i['height'] for i in second}
循环:
for
结果:
for item in first:
key = item['name'] + ' ' + item['last_name']
if key in second_dict:
item['height'] = second_dict[key]