Python系列教程

详解Python二维列表推导式

2025-10-26 6 0

简介 这段代码 arr = [[a * b for a in range(y)] for b in range(x)] 是一个嵌套的列表推导式,用于创建一个x行y列的二维列表,其中每个元素的值等于其行索引乘以列索引。

详解Python二维列表推导式:构造x*y乘法表

这段代码 arr = [[a * b for a in range(y)] for b in range(x)] 是一个嵌套的列表推导式,用于创建一个x行y列的二维列表,其中每个元素的值等于其行索引乘以列索引。
代码逐层解析
外层循环:for b in range(x)

    b 代表行索引,取值范围:0 到 x-1

    外层循环创建x个行(一维数组)

内层循环:for a in range(y)

    a 代表列索引,取值范围:0 到 y-1

    内层循环在每个行中创建y个元素

计算表达式:a * b

    每个元素的值 = 行索引 × 列索引

实际运行示例

假设输入:x=3, y=4

代码执行过程:
python

# 当 b=0 (第0行):
[a*b for a in range(4)] → [0*0, 0*1, 0*2, 0*3] → [0, 0, 0, 0]

# 当 b=1 (第1行):
[a*b for a in range(4)] → [1*0, 1*1, 1*2, 1*3] → [0, 1, 2, 3]

# 当 b=2 (第2行):
[a*b for a in range(4)] → [2*0, 2*1, 2*2, 2*3] → [0, 2, 4, 6]

最终结果:
python

arr = [
    [0, 0, 0, 0],  # 第0行
    [0, 1, 2, 3],  # 第1行  
    [0, 2, 4, 6]   # 第2行
]

等价的传统写法

为了更好理解,看看等价的传统循环写法:
python

arr = []
for b in range(x):      # 外层循环:处理每一行
    row = []            # 创建新的一行
    for a in range(y):  # 内层循环:处理行中的每个元素
        row.append(a * b)  # 计算元素值并添加到行中
    arr.append(row)     # 将完整的行添加到二维列表中

可视化理解
text

x=3, y=4 的二维列表结构:

    列索引(a)
    0  1  2  3
行  ------------
索  0 | 0  0  0  0
引  1 | 0  1  2  3
(b) 2 | 0  2  4  6

每个元素 = 行索引 × 列索引

应用场景

这种二维列表推导式常用于:

    创建乘法表

    初始化二维数组

    矩阵运算

    游戏棋盘初始化

点赞 0

我的名片

网名:梦宇信息技术

职业:软件开发、Mes系统工程师

现居:福建省-福州市

QQ:703159

站点信息

  • 联系QQ:703159
  • 文章统计118篇文章
  • 标签总数6
  • 加我微信:扫码,加我微信