我對Python中的字典有疑問。Python:遞歸地更改字典
我有這樣一本字典:
D = {'key1' : ['key3'], 'key2' : {}, 'key3' : ['key2']}
而我的目標是,所有的值都儘可能地取代這樣的:
After first iteration:
D = {'key1' : {'key3' : ['key2']}, 'key2' : {}, 'key3' : {'key2' : {}]}
After second iteration:
D = {'key1' : {'key3' : {'key2' : {}}}, 'key2' : {}, 'key3' : ['key2']}
是否有可能做到這一點?
我想是這樣的:
for k in D.keys():
try:
if D[k] in D.keys:
D[k] = D[D[k]]
except:
pass
我知道這不是正確的,它不工作。我想也許我應該使用遞歸函數。 你能告訴我如何正確更新字典中的值?
對不起,如果我的解釋不清楚,但我希望你明白了。
謝謝!
爲什麼值在列表中? –
這些值與上面所述的相同。我的意思是,'key1'的值是一個包含一個元素'key3'的列表,'key3'實際上是一個帶有'key2'列表的字典鍵等。我想替換這些。所以,'key1'的值應該變成[['key2]],並且變成[[{}]]。最後,我想只有嵌套字典(沒有列表)。我知道我的解釋很混亂,但我只是在想,如果字典的值與鍵匹配或不匹配,是否可以用字典的值替換。 – WonderMan
最終字典應該包含嵌套字典,最好是值。 – WonderMan