更多嵌套Python嵌套字典

阅读What is the best way to implement nested dictionaries?后,为什么这样做是错误的:

c = collections.defaultdict(collections.defaultdict(int))

在python?我认为这可以产生

{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
>>> 
上一篇:删除所有嵌套块,同时通过python单独保留非嵌套块


下一篇:如何将函数映射到三重嵌套列表并保持三重嵌套列表完整?