在機器學習中會用字典的巢狀來儲存決策樹的資訊,對繪製樹形圖有很大的作用,其中巢狀字典的生成是乙個遞迴的過程
如下所示:
>>> s=}},'b':{}} # 構造字典
>>> s['a'][0] # 取值
'no'
>>> s['a'][1]
}>>> s['a'][1]['flippers'][1]
'maybe'
----------
# 巢狀構造過程
>>> s=}
>>> s['no sur'][0]='no'
>>> s
}>>> ss=}
>>> ss['fli'][0]='no'
>>> ss['fli'][1]='yes'
>>> s['no sur'][1]=ss # 其中ss是在遞迴中的最外層
>>> s
}}}>>> 123456789101112131415161718192021
在上面構造巢狀字典的過程中,可以通過key來得到相應的value,而相應的value又可以是由字典構成的,再次利用key作為索引層級得到value。
其次是巢狀構造的過程,可以看出ss雖然是乙個巢狀的字典,但其是作為s的對應『fli』的值的,而}整體作為1的值。在機器學習實戰中的建立樹的過程中,用到了遞迴建立的方法,其中:
標註的兩行看了好久才明白,圖中遞迴的效果就類似於上面的**執行效果,只不過圖中的**等同於是把上面的ss寫成s。
要想很清楚地理解遞迴,可以學習下資料結構中的呼叫棧,也就是棧的呼叫原理,然後就很清晰了。。。。
Python字典巢狀
1 import copy 2 menu 10 程式設計 11,17 伺服器程式設計 18,23 24 網頁設計 31 後端 32353637 38 3940 41 menu copy copy.deepcopy menu 424344 print menu copy.pop 電腦科學與技術 字典巢...
python 有序字典與巢狀字典
1.ordereddict 有序字典 ordereddict是dict的子類,它記住了內容新增的順序。而普通字典是無序的。普通字典 import collections d dict d a a d b b d c c for k,v in d.items print k,v a ac c b b有...
python 字典和巢狀字典排序
正常字典的排序我們都知道,像這樣 a b sorted a.items key lambda x x 1 就會輸出如下結果 101,0 100,1 102,2 那如果是巢狀字典呢,比如 a 101 102 實際上是類似的,我們只要理解了上面這個key的含義,lambda可以理解為乙個函式,輸出為x ...