Programming/Python
Lambda함수
snoohey
2017. 5. 10. 22:22
람다 형식은 인공지능 분야나 AutoCAD라는 설계 프로그램에서 쓰이는 Lisp 언어에서 물려받았다고 한다.
사용법
lambda(인자 : 표현식)
function으로
>>> 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
filter(함수, 리스트)
리스트에 들어있는 원소들을 함수에 적용시켜서 결과가 참인 값들로 새로운 리스트를 만들어준다.
>>> list(filter(lambda x: x < 5, range(10)))
[0, 1, 2, 3, 4]