from functools import reduceってなに?

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

ちなみに、配列の中身が一つでも問題ないのです
こういう処理よく使う人にとっては、楽出来ていいですよね

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です