如果条件适用,添加特定字典字段

时间:2018-05-19 12:40:10

标签: python json python-2.7 dictionary

所以我在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"方式是什么?

非常感谢!

1 个答案:

答案 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]