calendarcodediamondfacebookfingerglobalgoogleplushatenahomepagetopplainpocketrssservicetwitterwordpresshome2searchfoldernext-arrowback-arrowfirst-arrowlast-arrow

Python : filter()はイテラブルの要素を絞り込む

filter()は、イテラブルの要素を絞り込む。第一引数に関数、第二引数にイテラブルを指定する。イテラブル要素を順に関数に渡し判定する。関数は無名関数でもよい。

エンジニア速報は Twitter の@commteで 1 日 5 回配信しています。

Sponsored Link

filter() のポイント

  • 関数が True を返す要素のリストを返す
  • イテラブルの中から指定条件に合致した要素を抽出する
  • リストに変換可能
filter(function, iterable)

iterable はシーケンスか、反復をサポートするコンテナか、イテレータとなる。

filter() - 組み込み関数 — Python 3.9.4 ドキュメント

filter()だけではオブジェクトが返されるだけで数値は表示されないので、値を表示するときは、for か list を使う。

filter(関数, イテラブル) # リストで出力 list(filter()) # 数値を出力 for hoge in filter(関数, x): print(hoge)

関数を使って奇数を出力

関数を使うと以下のようになる。

def a(n): return (n%2) == 1 b = [1, 2, 3, 4, 5, 6] list(filter(a, b)) # [1, 3, 5]

lambda(ラムダ式)を使ってリストで出力する

3 より大きい数値をリストで出力してみよう。

x = (1, 2, 3, 4, 5) list(filter(lambda i: i > 2, x)) [3, 4, 5]

lambda(ラムダ式)を使って偶数を出力する

for 文を使って、偶数を出力してみよう。

# 偶数を抽出する x = [1, 2, 3, 4, 5, 6] for hoge in filter(lambda i: i % 2 == 0, x): print(hoge) # 2 # 4 # 6

None

function が None なら iterable の偽である要素がすべて除去される。第一引数に None を渡すと真理値評価の結果で絞り込まれる。

a = [None, [], {}, 0, '', False, 1, 'A'] list(filter(None, a)) # [1, 'A']

Python おすすめ本

スポンサード リンク

Comments

Leave a Comment

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください