함수를 딱 한줄만으로 만들게 해주는 훌륭한 녀석
lambda 매개변수 : 표현식
두 수를 더하는 함수
>>> def hap(x, y):
... return x + y
...
>>> hap(10, 20)
30
람다 함수 형식으로 표현
>>> (lambda x,y: x + y)(10, 20)
30
map(함수, 리스트)
이 함수는 함수와 리스트를 인자로 받고, 리스트로부터 원소를 하나씩 꺼내어 함수를 적용시킨 다음 그 결과를 새로운 리스트에 담아준다.
>>> list(map(lambda x:x**2, range(5)))
[0, 1, 4, 9, 16]
reduce(함수, 시퀀스)
시퀀스(문자열, 리스트, 튜플)의 원소들을 누적적으로 함수에 적용시킨다.
>>> from functools import reduce
>>> reduce (lambda x,y : x + y , [0,1,2,3,4])
10
먼저 0과 1을 더하고, 그 결과에 2를 더하고, 또 3을 더하고 4를 더한 값을 돌려준다. 한마디로 전부 다 더하라는 의미이다.
filter(함수, 리스트)
리스트에 들어있는 원소들을 함수에 적용시켜서 결과가 참인 값들로 새로운 리스트를 만들어준다. 다음은 0부터 9까지의 리스트 중에서 5보다 작은 것들만 돌려주는 예시이다.
>>> list(filter(lambda x:x<5, range(10)))
[0,1,2,3,4]
결과값이 True인 경우를 돌려준다.