web-dev-qa-db-ja.com

リスト内のすべての整数を乗算する方法

こんにちは。リスト内の整数を乗算します。

例えば;

l = [1, 2, 3]
l = [1*2, 2*2, 3*2]

出力:

l = [2, 4, 6]

だから私はオンラインで検索していましたが、ほとんどの答えは次のようなすべての整数を互いに乗算することに関するものでした:

[1 * 2 * 3]

40
Andre

リスト内包表記 を試してください:

l = [x * 2 for x in l]

これはlを通り、各要素に2を掛けます。

もちろん、それを行う方法は複数あります。 lambda functions および map に興味があれば、

l = map(lambda x: x * 2, l)

lの各要素に関数lambda x: x * 2を適用します。これは次と同等です:

def timesTwo(x):
    return x * 2

l = map(timesTwo, l)
66
APerson

最もPython的な方法は、リストの内包表記を使用することです。

l = [2*x for x in l]

多数の整数に対してこれを行う必要がある場合は、numpy配列を使用します。

l = numpy.array(l, dtype=int)*2

最後の選択肢は、マップを使用することです

l = list(map(lambda x:2*x, l))
18
Joshua

そのルートに行く場合、匿名関数よりも見やすいかもしれない別の機能的アプローチは、固定パラメーターで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]
4
miradulo

私への最も簡単な方法は次のとおりです。

map((2).__mul__, [1, 2, 3])
3
blameless75
#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)

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]
1
ilya shusterman