#Lambda
Lambda는 함수를 간단하게 사용할 수 있도록 도와준다.
이는 이름이 없는 함수, 익명함수라고 하기도 한다.
이는 함수형 프로그래밍 언어에서의
lambda
와 정확히 똑같은 것은 아니지만, 파이썬 내에서 잘 통합되어 있으며
filter()
,map()
,reduce()
와 같은å 전형적인 기능 개념과 함께 사용되는 강력한 함수이다.
lambda
는 쓰고 버리는 일시적인 함수이다. 즉, 함수가 생성된 곳에서만 사용이 가능하다.
lambda 인자리스트 : 표현식
g = lambda x: x**2 print(g(8)) #64 f = lambda x,y : x+y print(f(4,4)) #8
람다의 정의에는
return
문이 포함되어 있지 않다.반환값을 만드는
표현식
이 포함되어 있다.함수가 사용될 수 있는 곳에는 어디나
lambda
정의를 사용할 수 있으며, 위 예시처럼 굳이 변수에 할당하여 사용할 필요는 없다.간단히 생각해보면 lambda [Input] : [Output] 의 개념으로 생각해 볼 수 있다.
map() 응용
람다 함수의 장점은
map()
함수와 함께 사용될 떄 볼 수 있다.
map()
은 두 개의 인자를 가지는 함수이다.
r = map(function, iterable, ...)
첫 번째 인자 function은 함수의 이름이다, 두 번째 인자 iterable은 한번에 하나의 멤버를 반환할 수 있는 객체이다,
이를테면
list, str, tuple
등이 예시가 될 수 있다.이와 같이
map()
함수는function
을iterable
의 모든 요소에 대하여 적용한다.그리고
function
에 의해 변경된iterator
를 반환한다.a = [1,2,3,4] b = [17, 12, 11, 10] arr = list(map(lambda x,y : x+y, a,b)) #[18, 14, 14, 14]
filter() 응용
filter() 함수 또한 두개의 인자를 가진다.
r = filter(function, iterable)
filter
에 인자로 사용되는function
은 처리되는 각각의 요소에 대하여Boolean
값을 반환한다.
True
반환시 그 요소는 그냥 남게되고,False
반환시 그 요소는 제거된다.a = [2, 18, 9, 22, 17, 24, 8, 12, 27] arr = list(filter(lambda x: x % 3 == 0, a)) print(arr) ##[18, 9, 24, 12, 27]
'Programming > Python' 카테고리의 다른 글
BFS Concept & Implementation (0) | 2019.10.21 |
---|---|
BFS&DFS (0) | 2019.10.21 |
map_join_product (0) | 2019.10.16 |
sorted_zip (0) | 2019.10.15 |
int_just_ascii (0) | 2019.10.11 |