首页 > 解决方案 > 如何比较两个列表值并将该值附加到新列表中?

问题描述

list1 = [{'name': 'Tyler', 'age': '12', 'city': 'SF'}, {'name': 'Caitlyn', 'age': '10', 'city': 'SJ'}]
list2 = [{'age': '12', 'hobby': 'soccer', 'song': 'Abba'}, {'age': '10', 'hobby': 'baseball', 'song': 'Punk'}]

这是两个列表,我想比较age每个匹配的列表并将其附加到 list1。你们能帮我解决这个问题吗?

结果应该是

list1 = [{'name': 'Tyler', 'age': '12', 'city': 'SF', 'age': '12', 'hobby': 'soccer', 'song': 'Abba'}, {'name': 'Caitlyn', 'age': '10', 'city': 'SJ', 'age': '10', 'hobby': 'baseball', 'song': 'Punk'}]

谢谢!

标签: pythonlistdictionary

解决方案


如果我理解正确,您希望将每个字典加入list2到字典中,键list1中的值相同age

尝试这样的事情

def join_by_age(list1, list2):
    for item1 in list1:
        for item2 in list2:
            if item1['age'] == item2['age']:
                item1.update(item2)
                break
    return list1

# Join the two lists.
print(join_by_age(list1, list2))

请记住,list1将修改 in 中的字典,并且如果 in 中的多个字典list2具有相同的age,则只会使用第一个字典。


推荐阅读