この記事では主に python 組み込み関数 filter の関連情報を紹介しますので、必要な方は
python 組み込み関数 filter
class filter(object): """ filter(function or None, iterable) --> filter object Return an iterator yielding those items of iterable for which function(item) is true. If function is None, return the items that are true. """
filter(func, iterator)
func を参照してください。 :custom または 匿名関数で取得した値はブール値です。true は関数で取得した値を保持し、false はそれを反転します。
イテレータ: 反復可能な オブジェクト 。
例:
フィルターリスト ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test']
テキスト文字列が含まれている限り、それを削除または否定します。
s.rfind'text'+1
Python3 では、rfind() は文字列の最後に出現した位置を返し、一致するものがない場合は -1 を返します。
数値の 0 は false で、整数 0 より大きいものはすべて true なので、s.rfind'text' の後に +1 があり、文字は見つかりません、そして -1+1=0 になります。
# Filter
li = ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test'] # 默认保留函数所取到的值 print(list(filter(lambda s: s.rfind('text') + 1, li))) # 取反,下三个例子是一样的 print(list(filter(lambda s: not s.rfind('text') + 1, li)))
# Noe カスタム関数
l1 = ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test'] def distinguish(l): nl = [] for s in l: if s.rfind("text") + 1: nl.append(s) return nl print(distinguish(l1))
# 2 つのカスタム高階関数
l2 = ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test'] def f(s): return s.rfind('text') + 1 def distinguish(func, array): nl = [] for s in array: if func(s): nl.append(s) return nl print(distinguish(f, l2))
# 3 つの匿名関数
l3 = ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test'] def distinguish(func, array): nl = [] for s in array: if func(s): nl.append(s) return nl print(distinguish(lambda s: s.rfind('text') + 1, l3))
以上がPythonの組み込み関数フィルターの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。