首页 > 解决方案 > 在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]]

标签: pythonpython-3.xlist

解决方案


您可以将列表推导与sumand一起使用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]

推荐阅读