閱讀What is the best way to implement nested dictionaries?後爲什麼錯了的事:在python更多鳥巢的Python嵌套字典
c = collections.defaultdict(collections.defaultdict(int))
?我會認爲這將工作生產
{key:{key:1}}
或者我在想它錯了嗎?
閱讀What is the best way to implement nested dictionaries?後爲什麼錯了的事:在python更多鳥巢的Python嵌套字典
c = collections.defaultdict(collections.defaultdict(int))
?我會認爲這將工作生產
{key:{key:1}}
或者我在想它錯了嗎?
defaultdict
的構造函數需要調用。 defaultdict(int)
是一個默認字典對象,不是可調用的。使用lambda
它可以工作,但是:
c = collections.defaultdict(lambda: collections.defaultdict(int))
這工作,因爲我傳遞給外部defaultdict
被調用時,創建一個新的defaultdict
可調用。
下面是一個例子:
>>> import collections
>>> c = collections.defaultdict(lambda: collections.defaultdict(int))
>>> c[5][6] += 1
>>> c[5][6]
1
>>> c[0][0]
0
>>>
禮Bendersky提供了這個問題,一個偉大的正面回答。將數據重構爲
>>> import collections
>>> c = collections.defaultdict(int)
>>> c[1, 2] = 'foo'
>>> c[5, 6] = 'bar'
>>> c
defaultdict(<type 'int'>, {(1, 2): 'foo', (5, 6): 'bar'})
也可能更好,這取決於您實際需要的內容。
這是一個質量觀察。 – 2011-09-17 12:08:25
真是太快了,謝謝。 – Clutch 2010-03-24 18:03:39