python - 给定 n,如何返回一个 n 嵌套的 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
但这在第二次迭代中失败了:
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])
推荐阅读
- javascript - 切换按钮打印双精度值
- json - SQLSTATE [42S22]:找不到列:1054 'where 子句'中的未知列'deposits.Country'
- java - ufw 阻止来自我的 java 应用程序的所有连接
- reactjs - 延迟调用useEffect导致组件模型不一致
- matlab - mp3和wav中频域的区别?
- python - Discord:停止在 Python 控制台中打印异常错误
- android - 无法在 android 中使用 FirebaseRecyclerAdapter 从列表中删除项目?
- curl - 在 RedHat 5 上制作和安装 curl 最新版本
- javascript - React Routing Menu - 数据处理最佳实践
- c# - 使用 ASP.NET Core 3.0 在 Kestrel Web 服务器中禁用 Nagle 算法