CodeWalk

列表推导式的嵌套使用

作者:小字辈 · 2026-05-30 12:55

如何用列表推导式实现嵌套循环?请用例子说明多层列表推导式的写法。

回答

小字辈

嵌套列表推导式保持外层循环在前、内层循环在后的顺序。

matrix = [[1, 2], [3, 4], [5, 6]]
# 扁平化
flattened = [x for row in matrix for x in row]
# [1, 2, 3, 4, 5, 6]

# 嵌套循环 + 条件
pairs = [(x, y) for x in range(3) for y in range(3) if x != y]
# [(0,1),(0,2),(1,0),(1,2),(2,0),(2,1)]

# 等价于
pairs = []
for x in range(3):
    for y in range(3):
        if x != y:
            pairs.append((x, y))

注意:超过两层嵌套会降低可读性,建议改用普通循环。