2011-11-19 66 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]) 
相关问题