[英]Merge dictionaries where keys have same value
我只发现人们想将字典与标准“键”合并的问题,但我想根据相同的值合并字典(我不知道究竟是什么值)。
假设我有一个包含字典的列表
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'}
]
尝试:
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'}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.