如果我有一个一维阵列中的Python例如:乘法1D阵列在Python
a = (10,20,30,40,50)
如何可以乘以这个由例如2的整数,以产生:
b = (20,40,60,80,100)
我试图:
b = a*2
但它似乎没有做任何事情。
如果我有一个一维阵列中的Python例如:乘法1D阵列在Python
a = (10,20,30,40,50)
如何可以乘以这个由例如2的整数,以产生:
b = (20,40,60,80,100)
我试图:
b = a*2
但它似乎没有做任何事情。
元组是不可变的;如果您要更改实际数组的内容,请使用列表([]
而不是()
)。
为了使具有元件两次那些元组的,环上的元组的新的列表和相乘的每个元素:
b = []
for num in a:
b.append(2*num)
这可以使用list comprehensions缩短到
b = [2*num for num in a]
。
请注意,如果你真的想最后的结果仍然是一个元组,你可以使用使用
b = tuple([2*num for num in a])
我相信你能得到你原来的语法,而无需使用第三方库将
最接近>>> map(lambda n: n*2, [1,2,3])
[2, 4, 6]
这基本上是说,“走功能f(n) = 2n
,如果应用到列表[1,2,3]
”的这样一种有趣的方式。
元组不是这里的问题。使用列表而不是元组的最终结果在元素方面是相同的:'[10,20,30,40,50,10,20,30,40,50]'。 -1 –
@MattBall完全正确。 (我点击提交之前,我的回答已经足够。) –
地图功能不修改列表,它只是返回一个新的。 – MatthieuW
对于数字打交道的更自然的方式,你可能要考虑numpy。 使用numpy的,你的代码会喜欢这样:
import numpy as np
a = np.array([10,20,30,40,50])
b = a*2
'一* 2'并做_something:_'(10,20,30,40,50,10,20,30,40,50)' –