こんにちは、リスト内の整数を掛けたいと思います。
例えば;
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
、各要素を 2 倍します。
もちろん、それを行う方法は複数あります。ラムダ関数とに興味がある場合はmap
、次のこともできます
l = map(lambda x: x * 2, l)
lambda x: x * 2
の各要素に関数を適用しますl
。これは次と同等です。
def timesTwo(x):
return x * 2
l = map(timesTwo, l)
リストではなくマップオブジェクトを返すことに注意してくださいmap()
。後でリストが本当に必要な場合は、list()
後で関数を使用できます。たとえば、次のようになります。
l = list(map(timesTwo, l))
この明確化のためのコメントで Minyc510 に感謝します。
The most pythonic way would be to use a list comprehension:
l = [2*x for x in l]
If you need to do this for a large number of integers, use numpy
arrays:
l = numpy.array(l, dtype=int)*2
A final alternative is to use map
l = list(map(lambda x:2*x, l))
別の機能的アプローチは、固定倍数でfunctools.partial
2つのパラメーターを利用するために使用している場合、無名関数よりも見やすいかもしれませんoperator.mul
>>> from functools import partial
>>> from operator import mul
>>> double = partial(mul, 2)
>>> list(map(double, [1, 2, 3]))
[2, 4, 6]
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]