[英]Iterate nested dictionary and replace all tuples with one of its elements, keeping dictionary structure
我已經看到其他關於迭代嵌套字典的問題,但沒有什么比我想做的更像了。 以下面的嵌套字典為例,它也可能有列表作為它們最里面的值。
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}}
謝謝。
我最終走了這條路:
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.