파이썬(python)의 lambda, map, reduce

1. lambda

 

함수 이름 없이 함수처럼 쓰는 익명함수

 

lambda (parameter) : (return) (condition) 구조

 

 

return 값은 보통 한줄정도로 짧게

 

사용을 권장하지는 않으나 여전히 사람들이 많이 씀

 

왜 권장하지 않느냐? 테스트 하기 어려움, 이해하기 어려움, 함수의 docstring도 불가능

 

2. map

 

시퀀스형 데이터 각 요소에 특정한 함수를 적용시켜주는 함수

 

여러개의 파라미터를 갖는 함수라면 여러개의 리스트를 받을 수 있음

 

a = [1,2,3,4,5]

f = lambda x:x**2

list(map(f,a))
[1,4,9,16,25]

f = lambda x,y : x+y

list(map(f,a,a))
[2,4,6,8,10]

 

이해하기 어려워 사용을 권장하지는 않는다

 

f = lambda x: x**2

result1 = list(map(f,a))

result2 = [f(value) for value in a]

result1
[1,4,9,16,25]

result2
[1,4,9,16,25]

result2 방식으로 이해하기 쉽게 함수를 적용할 수 있는데 map을 사용하는 것은 좀?

 

3. reduce

 

리스트 요소 통합해서 하나의 정수값을 출력하는 함수

 

이해하기 어려우면 그림을 통해서 이해하도록

 

 

TAGS.

Comments