Python filter() 関数
説明
filter()この関数はシーケンスをフィルタリングし、条件に合わない要素を除去して、条件に合う要素からなる新しいリストを返します。
この関数は2つのパラメータを受け取ります。1つ目は関数、2つ目はシーケンスです。シーケンスの各要素がパラメータとして関数に渡されて判定され、True または False が返されます。最後に True を返した要素が新しいリストに入れられます。
注意:Python2.7 ではリストを返し、Python3.x ではイテレータオブジェクトを返します。詳細は次を参照してください:Python3 filter() 関数
構文
以下は filter() メソッドの構文です:
filter(function, iterable)
パラメータ
- function -- 判定関数。
- iterable -- 反復可能なオブジェクト。
戻り値
リストを返します。
例
以下は filter 関数を使用した例です:
リスト内のすべての奇数をフィルタリングします:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def is_odd(n):
return n % 2 == 1
newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(newlist)
出力結果:
[1, 3, 5, 7, 9]
1〜100のうち平方根が整数になる数をフィルタリングします:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import math
def is_sqr(x):
return math.sqrt(x) % 1 == 0
newlist = filter(is_sqr, range(1, 101))
print(newlist)
出力結果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]その他の拡張