的字典修改值假設我有一個看起來像這樣的列表,但在深度和複雜性可能會有所不同:Python。在未知深度
inc = {'root': 10,
'values': {
'left': {8: {
'left': {
6: {
'left': 5,
'right': 11}
},
'right': {
10: {
'left': 2,
'right': 11}
}}},
'right' : {
12: {
'left': 5,
'right': 20}
}}}
我需要做的是遍歷它,找到最低的左值和最左邊的值(即,通過訪問字典的'左'元素達到的值)並交換它們。遞歸遍歷字典以查找值不是問題。問題是在確定需要更改什麼之後找到必要的值。
功能用於迭代:
leftmost = 0
lowest = 0
def walk_dict(d):
global leftmost, lowest
for k,v in sorted(d.items()):
if isinstance(v, dict):
walk_dict(v)
else:
if k == 'left':
if leftmost == 0:
leftmost = v
if v < lowest:
lowest = v
值得注意的是,這是一種在字典中存儲二叉樹的奇怪方法。我覺得使用嵌套列表更自然,或者做一些類似'{'value':5,'left':{'value':4},'right':{'value':7,'left' :{'value':12}}}'。 – Dougal 2013-03-22 23:05:59