我想嵌套任意数量的默认值,如下所示:
from collections import defaultdict
D = defaultdict( lambda:defaultdict(int) )
这工作得很好,如earlier所述.
现在我正在寻找以任意深度执行此操作的方式/功能:
所以我想要一个功能
def Gen_DDict( dim=3 ):
"code I'm looking for"
这将为dim = 3返回:
defaultdict( lambda : defaultdict( lambda : defaultdict(int) ) )
最佳答案
def genDDict(dim=3):
if dim==1:
return collections.defaultdict(int)
else:
return collections.defaultdict(lambda: genDDict(dim-1))
输出:
In [257]: d = genDDict(2)
In [258]: d[2][1]
Out[258]: 0