我只发现人们想要将字典与标准“键”合并的问题,但我想根据相同的值合并字典(我不知道确切的值是什么)。
假设我有一个包含字典的列表
myList = [
{'key1': 'v1', 'key2': 'v2'},
{'key1': 'v1', 'key2': 'v3'},
{'key1': 'v1', 'key2': 'v4'},
{'key1': 'v5', 'key2': 'v6'},
{'key1': 'v7', 'key2': 'v8'}
]
现在我想合并键值相同的字典,例如,key1
的值是 v1
但我不知道“v1”是什么所以我不能使用=='v1'
之类的条件。
结果
myMergedList = [
{'key1': 'v1', 'key2': ('v2','v3','v4')},
{'key1': 'v5', 'key2': 'v6'},
{'key1': 'v7', 'key2': 'v8'}
]
答案 0 :(得分:1)
试试:
myList = [
{"key1": "v1", "key2": "v2"},
{"key1": "v1", "key2": "v3"},
{"key1": "v1", "key2": "v4"},
{"key1": "v5", "key2": "v6"},
{"key1": "v7", "key2": "v8"},
]
out = {}
for d in myList:
out.setdefault(d["key1"], []).append(d["key2"])
out = [
{"key1": k, "key2": v[0] if len(v) == 1 else tuple(v)}
for k, v in out.items()
]
print(out)
打印:
[{'key1': 'v1', 'key2': ('v2', 'v3', 'v4')},
{'key1': 'v5', 'key2': 'v6'},
{'key1': 'v7', 'key2': 'v8'}]