python - 在python中将列表中的数字相乘
问题描述
我有一个list
:
lst = [[7], [4, 3, 5, 8], [1, 3]]
如何将每个元素乘以list
它的位置,如下所示:
[[7 * 0],[4 * 0 + 3 * 1 + 5 * 2 + 8 * 3], [1 * 0 + 3 * 1]]
并打印答案:
answer = [[0], [37], [3]]
解决方案
您可以将列表推导与sum
and一起使用enumerate
:
L = [[7], [4, 3, 5, 8], [1, 3]]
res = [[sum(i*j for i, j in enumerate(sublist))] for sublist in L]
print(res)
[[0], [37], [3]]
或者,如果您乐于使用 3rd 方库,您可以使用 NumPy:
import numpy as np
L = [[7], [4, 3, 5, 8], [1, 3]]
res = [np.arange(len(sublist)).dot(sublist) for sublist in L]
print(res)
[0, 37, 3]
推荐阅读
- python - 如何连接到现有的 Jupyter Notebook 内核并使用变量资源管理器检查变量?
- javascript - 使用javascript在不使用jquery的情况下删除焦点事件的文本框的css类
- express - 无法在 Next js 中使用 express.static() 对静态文件进行符号链接
- sql - 使用查询减少数字列中的值
- maven - 当所有模块都有不同的无法更改的父模块时,有没有办法在多个单独的模块上执行“mvn clean install”?
- powershell - 无法在 Powershell 中初始化命名空间管理器
- python - 通过将文件名通过 render_template 传递给 html 页面,当文件位于静态文件夹中时呈现 PDF
- sql-server - 如何查询 Azure Reporting Services 的 ExecutionLog
- java - 为什么 OutputStreamWriter 不写入数据?
- c# - Unity Raycast2D 角色坐在角落时的问题