パイソン・ランダ


Pythonで関数を定義するにはdefキーワードを使用し、defキーワードを使用すると関数を個別に定義および呼び出すことができます.람다 함수を使用すると、定義から呼び出しまで1行だけ必要になります.
本明細書で説明するmapfilterreduceの関数において有用であるだけでなく、sortsortedの関数においても明らかであるべきである.
1. lambda람다 함수は名前がないので匿名関数とも呼ばれます.使い方は簡単です.lambda 매개변수 : 표현식.
def add(x,y):
	return x+y
print(add(1,2))
Lambdaを使用して、上記のコードを次の行に表すことができます.両方の関数の結果は3です.
print((lambda x,y:x+y)(1,2))
2. mapmap関数の第1因子は関数であり、第2因子は이터러블 객체であり、そのうち이터러블 객체は重複可能な資料型であり、리스트튜플などがある.map関数は、이터러블 객체の各要素に対して関数を実行し、戻る.
1番目のパラメータでは、通常の関数を定義するよりもlambdaの関数を使用する方が便利であるため、次のように使用されます.mapオブジェクトが返されるので、listに変換する必要があります.
list_a = [1, 2, 3, 4, 5]
print(list(map(lambda x: x+2, list_a)))

# 결과: [3, 4, 5, 6, 7]
3. filterfilter関数もmap関数と同様に、1番目のパラメータとして関数に入り、2番目のパラメータとしてリストや凡例など터러블 객체に入る.filter関数が最初のパラメータの関数で反復可能なオブジェクトの各要素を実行する場合、関数はtrueの値を残します.
list_a=[1,2,3,4,5]
print(list(filter(lambda x: x %2==0,list_a)))

# 결과: [2,4]
4. reduce
関数型プログラミングでは,map,filterとともに用いられるreduceも多く,reduce関数は積算統計を求めるための関数である.reduce(함수, 시퀀스, 초기값)の形態で使用できます.初期値に基づいてTypeErrorを生成できることに注意してください.
from functoools import reduce
reduce(lambda x, y: x + y, [0, 1, 2, 3, 4])

# 결과: 10
ソースとコメント
  • https://wikidocs.net/64
  • https://www.daleseo.com/python-functools-reduce/