python filter、map、reduceの違いを簡単に分かります。


この文章は主にpython filter、map、reduceの違いを簡単に理解することを紹介しています。例コードで紹介した非常に詳細な文章です。皆さんの学習や仕事に対して、一定の参考学習価値があります。必要な友達は下記を参考にしてください。
pythonには面白い関数があります。面接の時に出会うかもしれません。今日もまとめてみますが、この類のインターネット資料もかなり多くて、乾物もあまりないです。習慣的に忘れやすい機能を整理しています。
ラボンダはキーワードです。filter、map、reduceは内蔵関数です。
lamda:pythonの1行の最小関数を実現します。

g = lambda x: x * 2 
#   
def g(x):
  return x*2
  • filter(function、sequence):Sequenceのitemに対して順次Fnctionを実行し、実行結果がTrueのitemに対してList/String/Tupleを構成する。
  • filter(function or None,sequence)->list,tuple,or string:関数とリスト/タプル/文字列に参加して、値はitemリスト/タプル/文字列に戻ります。
  • map(function、sequence):Sequenceのitemに対して順番にfunctionを実行し、実行結果functionがListを構成して戻る。map(function、sequence[、sequence]->list:入力は関数とリスト/タプル/文字列で、値はfunctionリストです。
  • reduce(function,sequence,starting_value):sequenceにおけるitemの順番に対して繰り返しFnctionを呼び出します。もしstarting_があれば。valueは、初期値として呼び出されてもよい。functionで受信したパラメータの個数は2だけで、最初の値と2番目の値をfunctionに伝えてから、functionの戻り値と3番目の値をfunctionに伝えて、結果を返します。
    reduce(function、sequence[、initial]]]->value:入力は関数とリスト/元グループ/文字列と初期値で、値は数値です。
    使用例:
    
    #coding=utf-8
    #1.lambda  ,        ,         ,    ,      
    print [(lambda x:x*x)(x)for x in range(11)]
    #  :[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    print (lambda x:x*x)(3)
    #  :9
    g=lambda x:x*x
    print g(4)
    #  :16
    
    #2.filter  :       TRUE   (         )
    print filter(lambda x:x*x-4,range(10))
    #  :[0, 1, 3, 4, 5, 6, 7, 8, 9]
    
    #3.map   :           。     ,      ,         。
    print map(lambda x:x*x-4,range(10))
    #  :[-4, -3, 0, 5, 12, 21, 32, 45, 60, 77]
    print map(lambda x,y:x*y-4,range(3),[8,9,10])
    #  :[-4, 5, 16]
    
    #4.reduce  :  sequence               function,  function              fuction,         
    #          2
    print reduce(lambda x,y:x*y-4,range(4))
    #  :-40
    #  0 100  
    print reduce(lambda x,y:x+y, range(101))
    #  :5050
    print reduce(lambda x,y:x+y, range(101),100)
    #  :5150
    以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。