6

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

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

这对 defaultdict 可行吗?

4

4 回答 4

8

当然。您需要为 defaultdict 提供一个函数,该函数返回您想要的默认值;创建这种一次性函数的最简单方法是 lambda:

foo = defaultdict(lambda: ([], []))
foo['key1'][0].append('value')
于 2014-02-17T11:13:17.873 回答
2
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']})})
于 2014-02-17T11:12:58.800 回答
2
foo = defaultdict(lambda: ([], []))
于 2014-02-17T11:13:32.953 回答
2

defaultdict一个list 2-tuple?只需在 python 中编写相同的内容:

dd = defaultdict(lambda: ([], []))
于 2014-02-17T11:14:05.713 回答