[Python]rangeの全要素で掛け算するには?

python

どうも、ちょげ(@chogetarou)です。

rangeの範囲内の全ての値同士を掛け算した値を取得する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

rangeの全要素で掛け算する方法は、4つあります。

for文

1つ目は、for文を使う方法です。

まず、掛け算した値を保持する変数を用意します。

変数の初期値には、1を指定します。

result = 1

次に、range()をfor文でループします。

そして、for分のループ処理で、用意した変数にrange()の値を掛けます。

for i in some_range:
    result *= i

上記のfor文は、用意した変数をrange()の全要素で掛け算した値にします。

使用例

values = range(1, 6)

result = 1

for i in values:
    result *= i

print(result)
出力:
120

functools.reduce()

2つ目は、functools.reduce()を使う方法です。

まず、functoolsからreduce()をインポートします。

from functools import reduce

次に、reduce()を呼び出します。

reduce()の第1引数に2つの引数を持つラムダ式、第2引数にrangeを指定します。

そして、reduce()の第1引数のラムダ式で、2つの引数を掛け算します。

result = reduce(lambda x, y: x * y, some_range)

上記のreduce()は、第2引数のrangeの全要素で掛け算した値を返します。

使用例

from functools import reduce

values = range(1, 6)

result = reduce(lambda x,y: x * y, values)

print(result)
出力:
120

math.prod()

3つ目は、math.prod()を使う方法です。

まず、mathをインポートします。

import math

mathからprod()を呼び出します。

そして、math.prod()の引数にrange()を指定します。

result = math.prod(some_range)

上記のprod()は、引数に指定したrangeの全要素で掛け算した値を返します。

使用例

import math

values = range(1, 6)

result = math.prod(values)

print(result)
出力:
120

numpy.prod()

4つ目は、numpy.prod()を使う方法です。

まず、numpyをインポートします。

import numpy as np

numpyからprod()を呼び出します。

そして、numpy.prod()の引数にrangeを指定します。

result = np.prod(some_range)

上記のprod()は、引数に指定したrangeの全要素で掛け算した値を返します。

使用例

import numpy as np

values = range(1, 6)

result = np.prod(values)

print(result)
出力:
120

まとめ

rangeの全要素で掛け算する方法は、次の4つです。

  • for文を使う方法
  • functools.reduce()を使う方法
    result = reduce(lambda x, y: x * y, some_range)
  • math.prod()を使う方法
    result = math.prod(some_range)
  • numpy.prod()を使う方法
    result = np.prod(some_range)

コメント

タイトルとURLをコピーしました