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()은 데이터가 필요해질 때 연산 수행

filter()