数値のリストを取得してそれらを乗算する関数を作成する必要があります。例:
[1,2,3,4,5,6]
をくれます1*2*3*4*5*6
。私は本当にあなたの助けを借りることができました。
17 に答える
Python 3: 使用functools.reduce
:
>>> from functools import reduce
>>> reduce(lambda x, y: x*y, [1,2,3,4,5,6])
720
Python 2: を使用reduce
:
>>> reduce(lambda x, y: x*y, [1,2,3,4,5,6])
720
2 および 3 の使用と互換性がある場合は、次のようpip install six
になります。
>>> from six.moves import reduce
>>> reduce(lambda x, y: x*y, [1,2,3,4,5,6])
720
以下を使用できます。
import operator
import functools
functools.reduce(operator.mul, [1,2,3,4,5,6], 1)
reduce
説明については、およびoperator.mul
ドキュメントを参照してください。
import functools
Python 3+の行が必要です。
を使用しnumpy.prod
てタスクを実行します。下記参照。
import numpy as np
mylist = [1, 2, 3, 4, 5, 6]
result = np.prod(np.array(mylist))
何もインポートせず、Python のより複雑な領域を避けたい場合は、単純な for ループを使用できます。
product = 1 # Don't use 0 here, otherwise, you'll get zero
# because anything times zero will be zero.
list = [1, 2, 3]
for x in list:
product *= x
を開始Python 3.8
すると、.prod
関数がmath
標準ライブラリのモジュールに含まれています。
math.prod(iterable, *, start=1)
このメソッドは、start
値 (デフォルト: 1) に反復可能な数値を掛けた積を返します。
import math
math.prod([1, 2, 3, 4, 5, 6])
>>> 720
iterable が空の場合、これは生成します1
(または、start
提供されている場合は値)。
Numpy
リストの積を返す関数がありprod()
ます。または、この場合はnumpyであるため、指定された軸上の配列の積です:
import numpy
a = [1,2,3,4,5,6]
b = numpy.prod(a)
...またはそれ以外の場合は、インポートするだけですnumpy.prod()
:
from numpy import prod
a = [1,2,3,4,5,6]
b = prod(a)
nums = str(tuple([1,2,3]))
mul_nums = nums.replace(',','*')
print(eval(mul_nums))
私は次の方法でこれを望みます:
def product_list(p):
total =1 #critical step works for all list
for i in p:
total=total*i # this will ensure that each elements are multiplied by itself
return total
print product_list([2,3,4,2]) #should print 48