람다(Lambda) 함수
뭔가 거창하고 수학에서 유래된 이름을 갖고 있기 때문에 상당히 어려운 놈일 거라 생각하시는 분들이 있겠지만, 람다(Lambda) 함수는 기존의 함수를 조금 더 간단히 축약된 방식으로 사용하기 위한 (익명)함수입니다. 내용적으로 그렇게 어려운 부분은 없습니다. 단지, 많이 사용하게 됩니다. 특히 판다스를 사용하게 되면, 람다와 Map 함수를 많이 볼 수 있어요. 역시 대단히 깊게 들어갈 내용은 아니고, 특성 파악과 몇 번 사용해보는 정도로 연습하면 되는 부분입니다.
#일반 파이썬 함수
def f(x, y):
return x * y
print(f(35, 5))
#람다(lambda) 함수 활용
#lamda 매개변수 : 표현식
print((lambda x, y : x * y)(35, 5))
위 두 코드 모두 결과값은 175가 나올 거예요. 한 번 직접 코딩하셔서 확인해보세요. 위 코드에서도 볼 수 있는 것처럼 람다 함수를 활용하게 되면, 코드 한 줄로 단축되는 것을 느낄 수 있습니다. 심지어 함수의 이름도 없이 사용가능해요. 상당히 직관적인 파이써닉 코드죠? 람다 함수의 표현식을 외울 필요는 없어요. 특성만 파악하고 몇 번 함수 만들어서 람다(lambda) 함수로 바꿔보시면 익히실 수 있습니다.
Map 함수
Map 함수 사용법은 ‘map(함수, 리스트)’, 즉 map()은 함수와 리스트를 인자로 받게 됩니다. 풀어서 말씀드리면 리스트의 요소들을 하나씩 뽑아서 정의한 함수에 대입시킨 결과값을 새로운 리스트에 저장해줄 때 사용합니다. 람다와 같이 사용하게 되고, 판다스나 머신러닝에서 정말 많이 사용해요. 어렵나요? 몇 번 연습하면 활용하실 수 있습니다.
# 파이썬3부터는 list()로 반드시 감싸줘야 합니다.
# range(4) -> [0, 1*1*1, 2*2*2, 3*3*3]
print(list(map(lambda x: x ** 3, range(4))))
람다와 Map을 살펴봤는데, 다음 #2에서는 reduce, filter 함수와 같이 사용하는 경우를 살펴보도록 할게요. 우선 오늘은 이런 게 있다는 정도만 알면 될 것 같습니다. 다음 #2에서 연습을 많이 해보도록 하겠습니다.