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

這裏S是一個數組如何將一個列表中的單個元素與一個數字相乘?

如何將成倍這並獲得價值?

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

在Python中,S不是一個數組,它是一個列表。這兩種容器之間有很大的區別。如果你想要數值數組,可以使用numpy。 – talonmies

+2

不,S甚至沒有列表 – joaquin

+0

@joaquin:如果不是列表,請告訴S'是什麼? – talonmies

回答

26

您可以使用內置的map功能:

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

list comprehensions就是有點更Python:

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

就像一個說明一樣,數組上的操作(如標量乘法)在numpy中進行了高度優化,並且比列表解析速度快得多。通常建議不要將數組視爲Python列表。 – JoshAdel

+0

不錯的提示。沒有注意到標籤中的'numpy'。 –

+1

我發現那些理解完全不可理解。 –

12

如果使用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]) 
相關問題