2014-02-17 69 views
3

我喜歡defaultdict,但我希望它autovivify列表的2元組,我不知道是否有可能。所以我想要的是:defaultdict列表的元組

foo = defaultdict(???) 
foo['key1'][0].append('value') 
foo['key1'][1].append('other value') 

這是可以用defaultdict嗎?

回答

3

不確定。你需要給defaultdict一個返回你想要的默認值的函數;建立這樣一個一次性的功能,最簡單的方法是λ:

foo = defaultdict(lambda: ([], [])) 
foo['key1'][0].append('value') 
1
from collections import defaultdict 
foo = defaultdict(lambda: defaultdict(list)) 
foo['key1'][0].append('value') 
foo['key1'][1].append('other value') 
print foo 

輸出

defaultdict(<function <lambda> at 0x7f7b65b4f848>, {'key1': defaultdict(<type 'list'>, {0: ['value'], 1: ['other value']})}) 
1
foo = defaultdict(lambda: ([], [])) 
1

一個list2-tupledefaultdict?在python中寫同樣的東西:

dd = defaultdict(lambda: ([], []))