Skip to main content
 首页 » 编程设计

两个列表列表的点积之和的Pythonic方式

2025年05月04日13langtianya

如何优雅地完成(Pythonic 方式)

您有两个矩阵 A 和 B,每个矩阵由一个列表列表表示。

您想计算 A 和 B 的逐元素乘积矩阵的总和。

示例代码:

sum = 0 
nrows = len(A) 
ncols = len(A[0]) 
for i in range(nrows): 
    for j in range(ncols): 
        sum += A[i][j]*B[i][j] 
 
# interested finally in the value of sum 
# return sum 

例如如果

A=[[1,2,3],[3,4,5]]

和

B=[[3,2,2],[1,1,1]]

结果是:

1*3 + 2*2 + 3*2 + 3*1 + 4*1 + 5*1 = 25

请您参考如下方法:

如果矩阵总是二维的,你可以这样做

sum(sum(a * b for a, b in zip(*rows)) for rows in zip(A, B)) 

IDEOne Link