You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写单个函数计算含列表嵌套字典各顶层值的列表总长度

解决方案

可以通过增加一个标记是否为顶层调用的布尔参数,将两个函数的逻辑合并到同一个函数中,代码如下:

def TreeSum(tree, is_top=True):
    calc = [len(v) if isinstance(v, list) else TreeSum(v, is_top=False) for v in tree.values()]
    return calc if is_top else sum(calc)

验证效果

  • 调用TreeSum(data)输出为[10, 17],符合预期
  • 调用TreeSum(data[1][1])输出为[2, 2, 4, 7],符合预期

实现逻辑

函数默认is_top=True代表是顶层调用,此时会将每个顶层值的计算结果组装为列表返回;递归处理嵌套字典时传入is_top=False,此时会直接返回当前子树内所有列表的长度总和,无需再返回列表,刚好覆盖了原有SubTreeSum的功能。

内容的提问来源于stack exchange,提问作者Aoaoaoappa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:27:04