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

Python如何递归统计嵌套列表中所有子列表的数量

Python统计嵌套列表子列表总数的Pythonic实现

实现思路

我们通过递归生成器遍历所有嵌套元素,遇到列表类型就计数1并继续递归遍历该列表的内部元素,最终通过内置sum函数直接对生成器输出的计数值求和,无需手动维护计数变量,逻辑简洁可读性强。

注意:该实现默认不统计传入的最外层列表本身,与题目给出的示例计算规则完全匹配。

代码实现

def count_nested_lists(lst: list) -> int:
    def nested_counter(obj):
        for item in obj:
            if isinstance(item, list):
                yield 1
                yield from nested_counter(item)
    return sum(nested_counter(lst))

测试验证

# 例1测试
l1 = [['a', 'bb'], ['c', 'a']]
print(count_nested_lists(l1)) 
# 输出:2

# 例2测试
l2 = [[['c', 'x'], ['g', 'ad']], [['a', 'bb'], ['c', 'a']]]
print(count_nested_lists(l2))
# 输出:6

方案优势

  • 采用Python原生yield from语法简化递归逻辑,没有冗余的条件分支
  • 生成器占用内存极低,即使处理深层嵌套的大列表也不会有内存溢出问题
  • 完全贴合Pythonic编码风格,优先使用内置函数实现核心逻辑,可读性和可维护性更高

内容的提问来源于stack exchange,提问作者Jürgen K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:42:00