我已經看到有關迭代嵌套字典的其他問題,但與我正在嘗試做的事情完全不同。以下面的嵌套字典為例,它也可能有串列作為它們的最里面的值。
d = {(1, 2) : {(3, 4) : [(5, 6), (7, 8)]}, (9, 10) : {(11, 12) : (13, 14)}}
我想用它的第一個元素或第二個元素(我的選擇)替換每個元組。所以如果我選擇第一個元素,我會得到以下字典:
d = {1 : {3 : [5, 7]}, 9 : {11 : 13}}
如果我選擇第二個元素,我會得到
d = {2 : {4 : [6, 8]}, 10 : {12 : 14}}
謝謝。
uj5u.com熱心網友回復:
我最終選擇了這條路線:
level1 = {(1, 2) : {(3, 4) : [(5, 6), (7, 8)]}, (9, 10) : {(11, 12) : [(13, 14)]}}
i = 0 # or i = 1
for k1, level2 in list(level1.items()):
for k2, level3 in list(level2.items()):
for j, value in enumerate(level3):
level3[j] = value[i]
level2[k2[i]] = level2.pop(k2)
level1[k1[i]] = level1.pop(k1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/429016.html
上一篇:如何在包含字典的串列中回圈
