我希望擴展此處采用的方法,但對于六個或更多串列的情況:How to Create Nested Dictionary in Python with 3 lists
a = ['A', 'B', 'C', 'D']
b = [1, 2, 3, 4]
c = [9, 8, 7, 6]
d = [0, 3, 5, 7]
e = [11, 13, 14, 15]
期望的輸出:
{'A':{1 :9, 0:11} , 'B':{2:8, 3:13}, 'C':{3:7, 5:13} , 'D':{4:6, 7:15}}
這是我到目前為止所嘗試的:
out = dict([[a, dict([map(str, i)])] for a, i in zip(a, zip(zip(b, c), zip(d,e) ))])
輸出很接近,但這不是我想要的。任何提示將非常感謝!
uj5u.com熱心網友回復:
也許是這樣的:
out = {k: {k1: v1, k2: v2} for k, k1, v1, k2, v2 in zip(a, b, c, d, e)}
如果我們想使用過多的zips,我們也可以這樣做:
out = {k: dict(v) for k,v in zip(a, zip(zip(b, c), zip(d, e)))}
輸出:
{'A':{1 :9, 0:11} , 'B':{2:8, 3:13}, 'C':{3:7, 5:13} , 'D':{4:6, 7:15}}
uj5u.com熱心網友回復:
這是一種使用兩個字典理解和的方法zip():
result = {key: { inner_key: inner_value for inner_key, inner_value in value}
for key, value in zip(a, zip(zip(b, c), zip(d, e)))
}
print(result)
結果,使用原始問題中的串列:
{'A': {1: 9, 0: 11}, 'B': {2: 8, 3: 13}, 'C': {3: 7, 5: 14}, 'D': {4: 6, 7: 15}}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/436878.html
下一篇:如何在這里列印鍵的值?
