你好,我想乘以一個列表中的整數。如何乘以列表中的所有整數
例如;
l = [1, 2, 3]
l = [1*2, 2*2, 3*2]
輸出:
l = [2, 4, 6]
於是我在網上搜索和大部分的答案是互相比如乘對於所有的整數:
[1 * 2 * 3]
你好,我想乘以一個列表中的整數。如何乘以列表中的所有整數
例如;
l = [1, 2, 3]
l = [1*2, 2*2, 3*2]
輸出:
l = [2, 4, 6]
於是我在網上搜索和大部分的答案是互相比如乘對於所有的整數:
[1 * 2 * 3]
l = [x * 2 for x in l]
這是通過l
,每個元素乘以兩。
當然,有多種方法可以做到這一點。如果你到lambda functions和map
,你甚至可以做
l = map(lambda x: x * 2, l)
的功能lambda x: x * 2
適用於每個元素l
。這相當於:
def timesTwo(x):
return x * 2
l = map(timesTwo, l)
啊,我看到它做了一個循環。有沒有比循環更直接的方式? (我不知道這是否合理:p) – Andre 2014-10-19 01:32:57
@Ali:儘管列表理解使用循環,但它是一種非常有效的循環,因此列表理解通常比使用明確的for循環要快得多。 – 2014-10-19 02:10:05
最Python的方式是使用列表理解:如果您需要爲大量的整數做到這一點
l = [2*x for x in l]
,使用numpy
數組:
l = numpy.array(l, dtype=int)*2
最後一個替代方法是使用地圖
l = list(map(lambda x:2*x, l))
另一種功能性的做法,也許是一個比較容易看比一個匿名函數,如果你走這條路是使用functools.partial
利用兩個參數operator.mul
與固定倍數
>>> from functools import partial
>>> from operator import mul
>>> double = partial(mul, 2)
>>> list(map(double, [1, 2, 3]))
[2, 4, 6]
給我的最簡單方法是:
map((2).__mul__, [1, 2, 3])
#multiplying each element in the list and adding it into an empty list
original = [1, 2, 3]
results = []
for num in original:
results.append(num*2)# multiply each iterative number by 2 and add it to the empty list.
print(results)
@MirzaSisic基本上有很多方法可以解決上述問題。我選擇創建一個空列表(results = []),所以在每次迭代之後,我可以將迭代的數字乘以2添加(追加)到空列表中。最後打印出包含迭代數字乘以2的空列表。如果你還沒有得到它,請指出具體情況,以便我可以幫助你。謝謝 – 2017-11-28 00:57:41
@salparadise贊成變量名稱的變化。 – 2017-11-28 01:01:45
使用numpy的:
In [1]: import numpy as np
In [2]: nums = np.array([1,2,3])*2
In [3]: nums.tolist()
Out[4]: [2, 4, 6]
在Python終端上輸入'help(map)'。 – Mephy 2014-10-19 01:30:46