我對如何解決這個問題感到非常困惑,因為我遇到了很多錯誤,例如TypeError: string indices must be integers.
鑒于:
dmx={'a': 0, 'b': 3, 'c': 9, 'd': 2, 'e': 4}
dx={'a': 2, 'b': 4, 'c': 9, 'd': 5, 'e': 1}
我想生產:
d={'a': [2,0], 'b': [4,3], 'c': [9,9], 'd': [5,2] ,'e': [1,4]}
uj5u.com熱心網友回復:
您可以使用:
{k: [v1, v2] for k, v1, v2 in zip(dmx.keys(), dmx.values(), dx.values())}
如果兩個字典中的鍵順序不同(因為字典在 Python 3.7 中是按插入順序排列的),那么您可以使用以下命令:
{k: [dmx[k], dx[k]] for k in dmx.keys()}
這兩個輸出:
{'a': [0, 2], 'b': [3, 4], 'c': [9, 9], 'd': [2, 5], 'e': [4, 1]}
uj5u.com熱心網友回復:
要為任意數量的字典提供通用解決方案,您可以使用setdefault:
out = {}
for d in [dmx, dx]:
for k,v in d.items():
out.setdefault(k, list()).append(v)
或者使用collections.defaultdict
from collections import defaultdict
out = defaultdict(list)
for d in [dmx, dx]:
for k,v in d.items():
out.append(v)
輸出:
{'a': [0, 2], 'b': [3, 4], 'c': [9, 9], 'd': [2, 5], 'e': [4, 1]}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/495447.html
標籤:Python python-3.x
