Baisc | Python lambda
파이썬 람다식 배우기
람다식은 맨날 봐도봐도 익숙하지 않고 문법도 헷갈린다.
이참에 정리를 해야지.
lambda = 한 줄 함수
lambda 매개변수 : 표현식
labmda 활용 예시
1. 두 수를 더하는 함수
def _adder(x, y):
return x+y
adder = (lambda x,y: x+y)
# 사용 예시
a = _adder(1, 3)
b = adder(1, 3)
# a = b
2. 제곱 함수
def _square(x):
return x*x
square = (lambda x: x*x)
3. if-else를 포함한 함수
# 매개변수로 받은 문자열의 첫 글자를 반환, 빈 문자열인 경우 빈 문자열 반환
def _first_letter(s):
return s[0] if s else ""
first_letter = (lambda s: s[0] if s else "")
생략이 많다.
- 함수 이름 필요 없음
- return 키워드 필요 없음
매개변수 부분이 입력(in) 표현식 부분이 반환(out)
map vs. list comprehension
map()은 데이터 구조의 각 원소들에 동일한 함수를 적용하여 새로운 데이터를 만든다.
# 아래의 두 줄은 유사한 연산을 수행
>>> [func(x) for x in data]
>>> map(func, data)
차이점
연산 진행 시점
map()은 데이터가 필요해질 때 연산 수행