どうも、ちょげ(@chogetarou)です。
rangeの範囲内の全ての値同士を掛け算した値を取得する方法を紹介します。
方法

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)
コメント