dai*_*isy 0 python nested defaultdict
我想写一个函数,它将返回一个嵌套的defaultdict,具体取决于输入n的值.
对于n = 1,它应该返回defaultdict(int).
对于n = 3,它应该返回
defaultdict(lambda: defaultdict(lambda: defaultdict(int))).
我最好的尝试是这样的:
def get_nested_defaultdict(n: int):
bottom_dict = defaultdict(int)
nested_dict = defaultdict
for i in range(n):
nested_dict = nested_dict(lambda: bottom_dict)
return nested_dict
Run Code Online (Sandbox Code Playgroud)
但这在第二次迭代时失败了:
TypeError: 'collections.defaultdict' object is not callable
关于什么:
from collections import defaultdict
def defaultdict_gen(n: int):
if n < 1:
raise ValueError()
if n == 1:
return defaultdict(int)
return defaultdict(lambda: defaultdict_gen(n - 1))
if __name__ == '__main__':
d = defaultdict_gen(2)
print(d)
print(d[0][0])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |