マップ、フィルター、削減の使用

Pythonの組み込み関数mapとfilterはどちらもシーケンスに対して対応する操作を実行し、mapは各要素のカスタムマッピングであり、filterはシーケンスの各要素をフィルタリングすることです。

フィルタ(fun、sequence)
パラメータfunは、カスタム関数名またはラムダ関数にすることができます。パラメータシーケンスはシーケンスであり、リスト、タプル、または文字列にすることができます。この関数は、シーケンスの各要素に対して条件付きの判断を行い、すべてのTrue要素を返します。返されるオブジェクトはイテレータです。次のように:

a = [1,2,3,4,5,6,7,8,9]
def fun(a):
    return a%2 == 0
res = filter(lambda x:x> 5、a)
print(res )
print(list(res))
res1 = filter(fun、a)
print(res1)
print(list(res1))
<0x0031FA70のフィルターオブジェクト>
[ 6、7、8、9 ]
<0x0032D8D0のフィルターオブジェクト>
[2 、4、6、8]
マップ
関数とマップ(fun、sequence)パラメーターのフィルターは同じです。これらの違いは、関数が条件付きの判断ではなく、各要素の数学的置換であるということです。この関数はイテレータも返します。次のように:

a = [1,2,3,4,5,6,7,8,9]
b = [2,3,4,5,6,7,8,9,0]
def fun(a):
    return a +1
res = map(lambda x、y:x + y、a、b)
print(res)
print(list(res))
res1 = map(fun、a)
print(res1)
print(list(res1))
< 0x03A5D8D0のマップオブジェクト>
[ 3、5、7、9、11、13、15、17、9 ]
<0x03AFC110のマップオブジェクト>
[ 2、3、4、5、6、7、8、9、10 ]
削減(fun、sequence)
パラメーターは、上記の2つと同じです。その機能は、シーケンスを圧縮して値を取得することです。ただし、reduceはpython2の組み込み関数であり、python3のfunctoolsモジュールに移動したため、使用する前にfunctools importreduceから必要です。上記との違いは、この関数はイテレーターではなく値を返すことと、fun関数は2つのパラメーターを渡す必要があることです。次のように:

functoolsからimportreduce
a = [1,2,3,4,5,6,7,8,9]
def fun(a、b):
    return a * b
 
res = reduce(lambda x、y:x + y、 a)
print(res)
res1 = reduce(fun、a)
print(res1)
45
362880

おすすめ

転載: blog.csdn.net/sichuanpb/article/details/114980613