filterfalse関数はイテラブルの中からfilterでFalseと判定された要素のみを抽出するイテレータ生成関数です。図解しているため、一目見て理解したい人にオススメの記事です。
filterfalse関数とは
以下の図の通り第1引数には判定用の関数を指定します。第2引数には判定対象となるイテラブルを指定します。
各イテラブルの要素に対し第1引数で与えた判定関数を通します。値がFalseになったものは通過させます。値がTrueの場合には値が破棄されます。
filterfalse関数を用いたサンプル
以下はfilterfalse関数を用いたサンプルです。
from itertools import filterfalse
dic={'要素0':False,'要素1':True,'要素2':True,'要素3':False,'要素4':False,'要素5':True}
ite=('要素0','要素1','要素2','要素3','要素4','要素5')
ans=tuple(i for i in filterfalse(lambda x:dic[x],ite))
print(ans)
第1引数は判定関数ですがここではラムダ式を用いています。iteの各要素から値を取り出した値がラムダ式に入力されます。 ラムダ式では辞書を用いて入力値からTrue/Falseに変換しています。
実行結果
('要素0', '要素3', '要素4')
dicをみてもらえばわかる通りラムダ式で'要素0', '要素3', '要素4'が渡されたときにFalseを返すためこの値のみfilterを通り、他の値については破棄されます。
まとめ
今回はfilterfalse関数を扱いました。判定用の関数によって様々なfilterをかけることができるため、かなり柔軟な使い方ができます。ぜひ活用してみてください。
Comment on this article
コメントはまだありません。
Send comments