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

2024-07-07 00:03:36 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我在python(2.7)中有两个字典列表,如果条件适用,我想更新列表中的每个字典

示例:

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\u name等于full\u name,并添加height参数

这工作得很好,但它非常难看,如果我有十个像“height”这样的字段要添加,也不太好看:

 for i in first:
    for k in second:
        if (i['name'] + ' ' + i['last_name'] == k['full_name']):
            i['height'] = k['height']

有什么好方法可以用“Python”的方式来做吗

非常感谢


Tags: namein列表forage字典johnfull
1条回答
网友
1楼 · 发布于 2024-07-07 00:03:36

您可以将第二个词典列表重组为一个词典:

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]

结果:

print(first)

[{'age': '27', 'height': 130, 'last_name': 'Doe', 'name': 'John'},
 {'age': '26', 'height': 180, 'last_name': 'Sparrow', 'name': 'Jack'}]

相关问题 更多 >