2011-11-19 11 views
28
S=[22, 33, 45.6, 21.6, 51.8] 
P=2.45 

Tu S jest tablicąJak pomnożyć poszczególne elementy listy za pomocą numeru?

Jak będę pomnożyć to i uzyskać wartość?

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

W języku Python S nie jest tablicą, jest listą. Istnieje bardzo duża różnica między dwoma typami kontenerów. Jeśli potrzebujesz tablic numerycznych, użyj numpy. – talonmies

+2

Nie, S nie jest nawet listą – joaquin

+0

@joaquin: Módl się, co to jest "S", jeśli to nie jest lista? – talonmies

Odpowiedz

26

można użyć wbudowanej map funkcję:

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

lub list comprehensions że jest nieco bardziej pythonic:

result = [x * P for x in S] 
+4

Tak jak w przypadku notatki, operacje na macierzach, takie jak mnożenie skalarne, są wysoce zoptymalizowane pod kątem numpy i są znacznie szybsze niż rozumienie list. Ogólnie zaleca się, aby nie traktować numpy tablic takich jak listy Pythona. – JoshAdel

+0

Dobra wskazówka. Nie zauważyłem "numpy" w tagach. –

+1

Uważam te interpretacje za całkowicie niezrozumiałe. –

12

Jeśli używasz numpy.multiply

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

To daje w wyniku

array([53.9 , 80.85, 111.72, 52.92, 126.91]) 
Powiązane problemy