reduceとは、
第一引数が、引数2個で使える関数
第二引数が、配列で
配列の前から順番に、関数に入れて、戻り値とってき、それ次々関数に投げ込みます。
やってみよう
まず、ビットでやるとわかりやすいと思うので、ビットでやります
例えば、⇒001, 010, 100 のビットを順番にor していくと 111になりますよね。
なのでビットの配列を準備してみます
[1 << 0, 1 << 1 , 1 << 2]これで準備できます。
<<ちなみにこれはビットシフトです
from functools import reduce
from operator import or_ # | を関数にしたもの
arr = [1 << 0, 1 << 1 , 1 << 2] # ビットの配列
res = reduce(or_, arr)
# ビットで表示
print(format(res, 'b'))
結果
111
ちなみに、配列の中身が一つでも問題ないのです
こういう処理よく使う人にとっては、楽出来ていいですよね