如何通过for循环按层级获取多维复杂列表的元素?
如何按层级获取多维列表的元素?
给定嵌套列表:
items = [[[1, 2], [3, 4], [5, 6]], [[10, 9], [8, 7], [6, 5]]]
你需要的是从最外层到内层第一个元素的层级式输出,而非遍历所有子元素。可以通过追踪当前层级的列表,逐层深入第一个元素来实现:
灵活实现(适配任意嵌套深度)
使用循环逐层遍历第一个子元素,直到当前对象不再是列表:
items = [[[1, 2], [3, 4], [5, 6]], [[10, 9], [8, 7], [6, 5]]] current = items while isinstance(current, list): print(current) # 仅当当前列表非空时继续深入 if current: current = current[0] else: break
运行结果:
[[[1, 2], [3, 4], [5, 6]], [[10, 9], [8, 7], [6, 5]]] [[1, 2], [3, 4], [5, 6]] [1, 2]
固定层级实现(已知嵌套深度)
如果明确知道嵌套层数,也可以直接通过索引访问打印:
print(items) print(items[0]) print(items[0][0])
原代码问题说明
你之前的循环for a, b, c in items是遍历items中的每个子列表(即[[1,2],[3,4],[5,6]]和[[10,9],[8,7],[6,5]]),并将每个子列表解包为a,b,c三个元素后逐个打印,这和你需要的层级遍历逻辑完全不同。
内容的提问来源于stack exchange,提问作者Breadification
相关产品推荐
相关产品推荐

