Python defaultdict列表元组

Python defaultdict列表元组,python,defaultdict,Python,Defaultdict,我喜欢defaultdict,但我希望它能自动激活2元组列表,我不确定这是否可行。所以我想要的是: foo = defaultdict(???) foo['key1'][0].append('value') foo['key1'][1].append('other value') 这可以通过defaultdict实现吗 from collections import defaultdict foo = defaultdict(lambda: defaultdict(list)) foo['ke

我喜欢defaultdict,但我希望它能自动激活2元组列表,我不确定这是否可行。所以我想要的是:

foo = defaultdict(???)
foo['key1'][0].append('value')
foo['key1'][1].append('other value')
这可以通过defaultdict实现吗

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']})})
defaultdict(,{'key1':defaultdict(,{0:['value'],1:['other value']}))

当然可以。你需要给defaultdict一个函数,返回你想要的默认值;创建此类一次性函数的最简单方法是lambda:

foo = defaultdict(lambda: ([], []))
foo['key1'][0].append('value')

列表的
defaultdict
2元组的
?用python编写同样的内容:

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