我正在寻找一种定义collections.defaultdict(工厂)的方法,该方法针对任意深度的每个键再次返回defaultdict。
例如,
foo = collections.defaultdict(lambda: *magic with defaultdict* )
这样
>>>> foo['bar']
defaultdict(<function lambda --> defaultdict,...)
>>> foo['bar']['baz']
defaultdict(<function lambda --> defaultdict,...)
无限次。
我尝试了将lambda-defaultdict的深拷贝作为“实际” defaultdict的lambda的更巴洛克的方式
>>> fooDict = collections.defaultdict(lambda: collections.defaultdict(lambda: collections.defaultdict()))
>>> barDict = collections.defaultdict(lambda: collections.defaultdict(lambda: copy.deepcopy(fooDict)))
但是在第四代中却失败了(思考时不足为奇)。