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

如何用递归结合for循环遍历动态嵌套列表并输出数据?

嵌套列表递归遍历实现方案

需求背景

需要遍历结构动态变化的嵌套列表(类节点树结构),替代手动索引的繁琐方式,仅通过递归+for循环实现,输出格式需与手动遍历示例一致,用于装配流程的元素输出。

实现思路

  1. 递归终止条件:当遍历到的元素不是列表类型时,直接输出该元素。
  2. 递归核心逻辑:遇到列表类型时,先输出当前列表的长度,再通过for循环遍历列表内每个元素——若元素是子列表则递归调用处理函数,若为普通元素则直接打印。
  3. 顶层列表处理:单独输出最外层列表的长度后,再启动遍历逻辑。

代码实现

my_list = [ "C0", "C1", ["A0-C0","A0-C1","A0-C2", ["A01-C0","A01-C1"], ["A02-C0"], ["A03-C0","A03-C1","A03-C2","A03-C3"]], ["A1-C0","A1-C1","A1-C2","A1-C3","A1-C4", ["A10-C0"], ["A11-C0","A11-C1"] ]  ]

def traverse_nested_list(lst):
    # 输出当前列表的大小
    print(f"\nlist - size: {len(lst)}")
    # 用for循环遍历所有元素
    for item in lst:
        if isinstance(item, list):
            # 子列表则递归处理
            traverse_nested_list(item)
        else:
            # 普通元素直接输出
            print(item)

# 先处理顶层列表的大小
print(f"my_list size: {len(my_list)}\n")
# 遍历顶层元素
for item in my_list:
    if isinstance(item, list):
        traverse_nested_list(item)
    else:
        print(item)

输出验证

运行代码后,输出结果与手动遍历示例完全一致:

my_list size: 4


C0
C1

list - size: 6
A0-C0
A0-C1
A0-C2

list - size: 2
A01-C0
A01-C1

list - size: 1
A02-C0

list - size: 4
A03-C0
A03-C1
A03-C2
A03-C3

list - size: 7
A1-C0
A1-C1
A1-C2
A1-C3
A1-C4

list - size: 1
A10-C0

list - size: 2
A11-C0
A11-C1

补充说明

  • 全程仅使用for循环实现遍历,未使用其他循环结构,符合需求限制。
  • 递归逻辑自动适配任意深度的嵌套列表,无需手动修改索引,完全支持动态变化的列表结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:50:29