簡體   English   中英

迭代嵌套字典並用其元素之一替換所有元組,保持字典結構

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM