Как умножить отдельные элементы списка на число? - PullRequest
43 голосов
/ 19 ноября 2011
S = [22, 33, 45.6, 21.6, 51.8]
P = 2.45

Здесь S - это массив

Как мне умножить это и получить значение?

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

Ответы [ 4 ]

66 голосов
/ 19 ноября 2011

В 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

36 голосов
/ 19 ноября 2011

Вы можете использовать встроенную функцию map:

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

или список пониманий , что немного более питонично:

result = [x * P for x in S]
19 голосов
/ 14 мая 2013

Если вы используете 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])
0 голосов
/ 03 апреля 2019

Здесь представлен функциональный подход с использованием map, itertools.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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...