例如,如果我在 Python 中有一个一维数组:
a = (10,20,30,40,50)
如何将它乘以一个整数,例如 2 来产生:
b = (20,40,60,80,100)
我努力了:
b = a*2
但它似乎没有做任何事情。
例如,如果我在 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)
这可以缩短为
b = [2*num for num in a]
使用列表推导。
请注意,如果您确实希望最终结果仍然是元组,则可以使用 use
b = tuple([2*num for num in a])
我相信在不使用第三方库的情况下最接近原始语法的方法是
>>> map(lambda n: n*2, [1,2,3])
[2, 4, 6]
这基本上只是一种奇特的说法,“获取函数f(n) = 2n
并将 if 应用于列表[1,2,3]
”。
使用以下内容:
>>> b = [2 * i for i in a]
>>> b
[20, 40, 60, 80, 100]
a * 2
将复制您的设置:
>>> a = (10,20,30,40,50)
>>> a * 2
(10, 20, 30, 40, 50, 10, 20, 30, 40, 50)
要以更自然的方式处理数字,您可能需要考虑numpy。使用 numpy,您的代码将如下所示:
import numpy as np
a = np.array([10,20,30,40,50])
b = a*2