我有多个像这样的字典(或键值对序列):
d1 = {key1: x1, key2: y1}
d2 = {key1: x2, key2: y2}
作为一个新的字典,我怎样才能有效地得到这样的结果?
d = {key1: (x1, x2), key2: (y1, y2)}
原文由 Salil 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有多个像这样的字典(或键值对序列):
d1 = {key1: x1, key2: y1}
d2 = {key1: x2, key2: y2}
作为一个新的字典,我怎样才能有效地得到这样的结果?
d = {key1: (x1, x2), key2: (y1, y2)}
原文由 Salil 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是一个通用的解决方案,可以处理任意数量的字典,在某些情况下键只在某些字典中:
from collections import defaultdict
d1 = {1: 2, 3: 4}
d2 = {1: 6, 3: 7}
dd = defaultdict(list)
for d in (d1, d2): # you can list as many input dicts as you want here
for key, value in d.items():
dd[key].append(value)
print(dd) # result: defaultdict(<type 'list'>, {1: [2, 6], 3: [4, 7]})
原文由 Eli Bendersky 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答893 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
假设所有键始终存在于所有字典中:
注意:在 Python 3.x 中使用以下代码:
如果 dic 包含 numpy 数组: