python嵌套列表怎么遍历

python嵌套列表怎么遍历

作者:William Gu发布时间:2026-03-25阅读时长:0 分钟阅读次数:3

用户关注问题

Q
如何用Python访问嵌套列表中的元素?

我有一个嵌套列表,想访问里面的每个元素,有什么方法可以实现?

A

使用双层循环访问嵌套列表元素

在Python中,可以通过两层for循环遍历嵌套列表。外层循环遍历外部列表的每个子列表,内层循环遍历子列表中的每个元素。这样能够访问到所有嵌套的元素。示例代码如下:

nested_list = [[1, 2], [3, 4], [5, 6]]
for sublist in nested_list:
    for item in sublist:
        print(item)
Q
有没有简洁的方法遍历任意层数的嵌套列表?

我的嵌套列表层数不确定,有没有不需要嵌套多层循环的遍历方式?

A

递归函数是遍历多层嵌套列表的有效方式

递归函数通过不断调用自身,可以处理任意层数的嵌套列表。每次递归检查当前元素是否为列表,如果是则继续递归遍历,否则处理该元素。示例代码如下:

def traverse(lst):
    for item in lst:
        if isinstance(item, list):
            traverse(item)
        else:
            print(item)

nested_list = [1, [2, [3, 4], 5], 6]
traverse(nested_list)
Q
使用列表推导式可以遍历嵌套列表吗?

想用列表推导式快速获取嵌套列表中的所有元素,有没有可行的方案?

A

列表推导式结合递归可以实现元素的扁平化提取

列表推导式本身适合单层遍历,处理复杂嵌套结构一般要结合递归。可以写一个递归函数先扁平化嵌套列表,然后通过列表推导式对扁平后的列表进行处理。示例代码:

def flatten(lst):
    result = []
    for item in lst:
        if isinstance(item, list):
            result.extend(flatten(item))
        else:
            result.append(item)
    return result

nested_list = [[1, 2], [3, [4, 5]]]
flat_list = flatten(nested_list)
# 使用列表推导式对所有元素 +1
new_list = [x + 1 for x in flat_list]
print(new_list)