如何将列表的每个元素与一个数字相乘?

57 投票
4 回答
149023 浏览
提问于 2025-04-17 06:39
S = [22, 33, 45.6, 21.6, 51.8]
P = 2.45
SP = [53.9, 80.85, 111.72, 52.92, 126.91]

这里的 S 是一个数组

我该怎么把它乘起来并得到一个值呢?

4 个回答

21

如果你使用 numpy.multiply 这个函数

S = [22, 33, 45.6, 21.6, 51.8]
P = 2.45
multiply(S, P)

它会给你一个结果

array([53.9 , 80.85, 111.72, 52.92, 126.91])
77

在NumPy中,这个操作非常简单。

import numpy as np
P=2.45
S=[22, 33, 45.6, 21.6, 51.8]
SP = P*np.array(S)

我建议你去看看NumPy的教程,里面详细解释了NumPy数组的所有功能:

https://scipy.github.io/old-wiki/pages/Tentative_NumPy_Tutorial

42

你可以使用内置的 map 函数:

result = map(lambda x: x * P, S)

或者使用 列表推导式,这种写法更符合Python的风格:

result = [x * P for x in S]

撰写回答