강의를 듣다가 아직 내가 잘 모르는 파이썬 lambda 함수가 나와 기초 내용을 적어둔다.
보통 파이썬에서 함수라면 def something(x):
으로 시작하게 마련인데, lambda 함수는 잠깐 활용할 함수를 간단히 만들기 좋은 용도라고 한다. 기능은 일반 함수랑 같고, 형태는 훨씬 간결하다. 예를 들면
def add_nine(x):
return x+9
이 함수는 아래 함수와 결과가 동일하다.
add_nine(1)처럼 값을 바로 입력하거나, x값을 먼저 정의한 후 add_nine(x) 이렇게 입력하면 기대하는 결과를 얻을 수 있다.
add_nine = lambda x: x+9
if 절이 들어간 함수도 lambda 함수로 간결하게 만들 수 있다. 여기서는 시간을 구하기 위해 우선 datetime 라이브러리를 import 했다.
import datetime
def am_i_late(h):
if h < datetime.time(10, 0, 0):
return 'on time'
else:
return 'you\'re late'
10시 이전 시간을 입력하면 'on time'이, 아니면 'you're late'이 출력된다. 아래 lambda 함수에서도 동일한 결과가 나온다. 단, 입력하는 값도 datetime.time 형태여야 한다.
am_i_late_again = lambda h: 'on time' if h < datetime.time(10, 0, 0) else 'you\'re late'
람다람다 자꾸 람다라고 하니까 '이 함수는 뭐뭐람다..' 같은 느낌으로 외워도 좋겠다고 생각했다. ...