2022-08-23 23:16:06

파이썬에서 함수를 선언할 때는, def 함수이름(): 으로 시작하기 때문에 최소 두 줄의 코드가 필요합니다.

 

def add3(a):
	return a + 3

 

파이썬의 람다(lamdba)

위에서 예를 든 것과 같은 간단한 함수를 한 줄로 표현할 수 있게 도와주는 것이 바로 람다입니다. 

 

add3 = lambda x: x + 3

 

근데 함수를 한 줄로 줄인다고 해서 뭐가 좋은 걸까요? (가독성만 나빠지는 것 같은데..)

 

람다를 사용하는 가장 큰 이유는 함수를 매개변수로 전달해야 하는 경우입니다. 파이썬의 map 함수 같은 경우에는 첫번째 매개변수로 함수를 요구합니다. 

 

map(함수, 리스트)

 

map 함수는 주로 숫자 요소로 구성되어 있는 리스트를 문자열 요소 리스트로 바꾸고 싶을 때(아니면 그 반대의 경우에) 많이 사용합니다. 

 

 

list1 = [1, 2, 3, 4, 5, 6]
list2 = map(str, list1)
print(list(list2)) # map 함수의 리턴값은 iterator이기 때문에 list 함수에 넣어줘야 리스트로 변환됨

 

 

str 함수 말고 이번에는 람다로 만든 함수를 넣어보겠습니다. 위에서 만들어본 3을 더해주는 함수를 넣어볼까요? 

 

list1 = [1, 2, 3, 4, 5, 6]
list2 = map(lambda x: x + 3, list1)
print(list(list2)) # map 함수의 리턴값은 iterator이기 때문에 list 함수에 넣어줘야 리스트로 변환됨

 

 

list1의 요소들이 모두 3씩 더해진 것을 잘 확인할 수 있습니다. 람다 덕분에 코드를 간결하게 작성할 수 있었습니다.