フィルター、ラムダ関数式

高洛峰
リリース: 2016-10-20 10:01:56
オリジナル
1493 人が閲覧しました

filter(関数またはなし、シーケンス)、シーケンスはリスト、タプル、文字列です。この関数の機能は、要素自体をパラメータとして関数が呼び出されたときに、True または bool (戻り値) を返すシーケンス内のすべての要素をフィルタリングし、それをリストとして返すことです。フィルタは 2 つだけを受け入れることができます。パラメーター (関数、シーケンス) のうち、関数 関数では 1 つの値のみを返すことができます

簡単なコードから始めましょう:

print max(filter(lambda x: 555555 % x == 0, range(100, 999)))
ログイン後にコピー

このコードは、最大 3 桁の約数を出力することを意味します番号は555555。

まず第一に、このコードの最初の知識ポイントは、リストをフィルタリングするために使用される Python の組み込み関数 filter

filter() 関数です。最も簡単な方法は、関数を使用してリストをフィルターし、リスト内の各項目をフィルター関数に渡し、フィルター関数が false を返したときにリストから項目を削除することです。

filter() 関数には、関数とリストの 2 つのパラメータが含まれます。つまり、この関数は、関数パラメーターによって返された結果が true であるかどうかに基づいてリスト パラメーター内の項目をフィルター処理し、最終的に新しいリストを返します。

簡単に言えば、filter() 関数は次のコードと同等です:

c = [b for b in a1 if b > 2]
print c
ログイン後にコピー

2 番目の知識ポイントは lambda() 関数です

Python はこの構文をサポートしており、ユーザーは単一のline minimum function 、ラムダと呼ばれるこれらの関数は Lisp から借用したものです。

def f(x):
    return x * 2
g = lambda x: x * 2
(lambda x: x * 2)(3)
ログイン後にコピー

コードからわかるように、ラムダ関数は通常の関数と同じことを行い、ラムダにはパラメーター リストを囲む括弧がなく、return キーワードが無視されます (return は暗黙的に存在します。関数全体には 1 行しかなく、関数には名前がありませんが、変数に代入して呼び出すことができます)

コードの最後の部分は、ラムダ関数が単なるインライン関数であることを示しています。


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