ホームページ > バックエンド開発 > Python チュートリアル > Pythonの組み込み関数フィルターの詳細説明

Pythonの組み込み関数フィルターの詳細説明

黄舟
リリース: 2017-06-04 10:17:14
オリジナル
1452 人が閲覧しました

この記事では主に 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート