如果我有一個一維陣列中的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)' –