python - 如何将两个嵌套列表的每个元素相乘?
问题描述
有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)
解决方案
您可以申请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]]
推荐阅读
- javascript - 使用 forEach 将 setState 与 Filelist 反应
- javascript - 失去焦点时自动折叠侧边栏菜单列表
- php - 使用 PHP DateTime 设置年份
- verilog - SystemVerilog 使用接口数组
- angular - 遍历Angular 5中的对象键
- java - 我可以直接将 PFX/PKCS12 文件用于 java 密钥存储吗?
- documentum-dql - 如何使用 Documentum DQL 正确创建类型
- python - 安装 tensorflow 时出现 CondaVerificationError(Windows 10)
- httpclient - HTTPClient 4.x Auth 缓存未在上下文中设置
- r - 使用 auto.arima 拟合模型时出错