web-dev-qa-db-ja.com

リストの個々の要素に数字を掛ける方法は?

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

ここでSは配列です

これをどのように乗算して値を取得しますか?

SP = [53.9, 80.85, 111.72, 52.92, 126.91]
43
bharath

組み込みの map 関数を使用できます:

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

または リスト内包表記 これはもう少しPythonicです:

result = [x * P for x in S]
37
KL-7

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

67
JoshAdel

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])
19
DKK

以下は、 functional アプローチを使用した mapitertools.repeat および operator.mul

import operator
from itertools import repeat


def scalar_multiplication(vector, scalar):
    yield from map(operator.mul, vector, repeat(scalar))

使用例:

>>> v = [1, 2, 3, 4]
>>> c = 3
>>> list(scalar_multiplication(v, c))
[3, 6, 9, 12]
0
Georgy