我如何在 python 中合并两个具有相同键值的字典,以便我从任一字典中获得一个具有两个值列表的键?

时间:2021-03-31 04:58:59

标签: python python-3.x list dictionary merge

如何在 python 中合并两个具有相同键值的字典,以便我从任一字典中获得一个具有两个值列表的键

例如:

{'S': ['a', 'b', 'c'], 'A': ['a', '@'], 'B': ['b', '@'], 'C': ['c'], 'D': ['d', '@'], 'E': ['e', '@']}

{'S': ['$'], 'A': ['b', 'c'], 'B': ['c'], 'C': ['d', 'e', '$'], 'D': ['e', '$'], 'E': ['$']}

结果为

{'S': [['a', 'b', 'c'],['$']], 'A': [['a', '@'],['b','c']], 'B': [['b', '@'],['c']], 'C':[ ['c'],['d', 'e', '$']] 'D': [['d', '@'],['e', '$']], 'E': [['e', '@'],['$']]}

3 个答案:

答案 0 :(得分:1)

dict1 = {'S': ['a', 'b', 'c'], 'A': ['a', '@'], 'B': ['b', '@'], 'C': ['c'], 'D': ['d', '@'], 'E': ['e', '@']}

dict2 = {'S': ['$'], 'A': ['b', 'c'], 'B': ['c'], 'C': ['d', 'e', '$'], 'D': ['e', '$'], 'E': ['$']}

dict3 = {}

for key in dict1:
    dict3[key] = [dict1[key],dict2[key]]

print(dict3)

答案 1 :(得分:0)

我建议查看熊猫来管理您的数据。它具有内置的合并方法,可以为您节省大量时间 https://pandas.pydata.org/

答案 2 :(得分:0)

一个简单的代码:

dict([
    (key, [a.get(key), b.get(key)])
    for key in {*a.keys(), *b.keys()}
])