python里的 defaultdict <type‘list’>,[]這個是啥意思啊?
uj5u.com熱心網友回復:
串列型別,!!!!!!!uj5u.com熱心網友回復:
樓主是不是打錯了?還是定義的并不是一個defaultdict?我試了一下:
>>> from collections import defaultdict
>>> a = defaultdict(list)
>>> a
defaultdict(<class 'list'>, {})
這里的<class 'list'>指明a的每一個元素的值都將是一個list型別。后面的{}表明a里面暫時還啥都沒有。
如果我們給a添加一個元素:
>>> a['list_one'].append(1)
>>> a
defaultdict(<class 'list'>, {'list_one': [1]})
就可以看到a里多了一個鍵-值對(是的,defaultdict本質上得是個dict)。其鍵是一個內容為'list_one'的字串,對應的值為[1]這個list。(上面提到了,a里每一個元素的值都是一個list。)
這個例子也演示了defaultdict為什么是叫default。上例子中,我們在'list_one'還不存在的情況下,強行給它添加內容。如果使用Python內置的dict,
b = {}
b['list_one'].append(1)
就會出錯(KeyError)。而defaultdict就是說,by default(預設時候,默認的值是list())。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/127611.html
