首页 > 解决方案 > 如何将两个嵌套列表的每个元素相乘?

问题描述

有2个嵌套列表,我想将相应位置的项目相乘,以便输出为[[9, 16, 21], [24, 25, 24], [21, 16, 9]]. 我使用下面的程序。它有效,但它似乎太复杂了。那有什么快速的方法吗?是否有任何库可以快速执行此类任务?

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = [[9, 8, 7], [6, 5, 4], [3, 2, 1]]
n = []
for i in range(3):
    m = []
    for j in range(3):
        m.append(a[i][j] * b[i][j])
    n.append(m)
print(n)

标签: python

解决方案


您可以申请zip两次:

a=[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b=[[9, 8, 7], [6, 5, 4], [3, 2, 1]]
result = [[j*k for j, k in zip(c, d)] for c, d in zip(a, b)]

输出:

[[9, 16, 21], [24, 25, 24], [21, 16, 9]]

推荐阅读