ホームページ >バックエンド開発 >Python チュートリアル >Python のマップ、フィルター、リデュースの概要
1、filter(function,iterable)
参考
関数が true を返す iterable の要素からリストを構築します。 iterable は、シーケンス、反復をサポートするコンテナ、または反復子のいずれかです。 iterable が文字列またはタプルの場合、結果もその型になります。それ以外の場合は常にリストです。 function が None の場合、恒等関数が想定されます。つまり、false である iterable のすべての要素が削除されます。
filter(function, iterable) は、関数が None でない場合は [item for item in iterable if function(item)] と同等であり、関数が None の場合は [item for item in iterable if item] と同等であることに注意してください。
デモ:
Python代番号
#-*-coding:utf-8-*-
def foo():
return filter(lambda x:x>5,range(0,10))
def bar():
return [x for x in range(0,10) if x >> 5]
print foo() == bar()
2、map(function,iterable,….)
引用
iterable のすべての項目に関数を適用し、結果のリストを返します。追加の反復可能な引数が渡される場合、関数はその数の引数を受け取る必要があり、すべての反復可能な項目に並行して適用されます。 1 つの反復可能オブジェクトが別の反復可能オブジェクトより短い場合、None 項目で拡張されているとみなされます。 function が None の場合、恒等関数が仮定されます。複数の引数がある場合、map() はすべての反復可能オブジェクトからの対応する項目を含むタプルで構成されるリストを返します (一種の転置操作)。反復可能な引数には、シーケンスまたは任意の反復可能なオブジェクトを指定できます。結果は常にリストになります。
デモ:
Python代码
#-*-coding:utf-8-*-
def add(x,y):
return x+y
print map(add, range(8),range(8))
3、reduce(function,iterable[,initalizer])
引用
2つの引数の関数を左からiterableの項目に累積的に適用します右、反復可能を単一の値に減らすためです。たとえば、reduce(lambdax, y: x+y, [1, 2, 3, 4, 5]) は ((((1+2)+3)+4)+5) を計算します。左側の引数 x は累積値で、右側の引数 y は反復可能な値からの更新値です。オプションの初期化子が存在する場合、それは計算の反復可能項目の前に配置され、反復可能が空の場合のデフォルトとして機能します。 Initializer が指定されておらず、iterable に項目が 1 つだけ含まれている場合は、最初の項目が返されます。ほぼ次と同等:
demo:
Python代码
#-*-coding:utf-8-*- def foo(): return reduce(lambda x,y:x*y,range(1,5)) print foo()