람다 함수는 이름이 없는, 일회성으로 사용하기 좋은 간단한 함수다. 일반적으로 함수는 def
키워드를 써서 정의하지만, 람다 함수는 lambda
키워드를 사용해서 한 줄로 간단하게 정의할 수 있다. 작은 기능을 빠르게 작성할 때 유용하고, 주로 다른 함수의 인자로 사용되기도 한다.
람다 함수의 기본 문법
람다 함수의 문법은 아주 간단하다:
lambda 인자1, 인자2, ... : 표현식
이걸 이해하기 쉽게 예를 들어보자. 두 수를 더하는 함수를 람다로 작성해보면:
add = lambda x, y: x + y
result = add(2, 3)
print(result) # 5
참 간단하지 않은가? x
와 y
라는 두 인자를 받아서 x + y
를 반환하는 함수다. 그리고 add(2, 3)
을 호출하면 5가 출력된다.
람다 함수의 활용
람다 함수는 보통 다른 함수의 인자로 사용될 때 빛을 발한다. 예를 들어, 리스트의 각 요소에 특정한 작업을 적용하고 싶을 때 map
함수를 사용할 수 있다. 여기서 람다 함수를 활용하면 아주 깔끔하게 코드를 작성할 수 있다.
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared) # [1, 4, 9, 16, 25]
여기서는 numbers
리스트의 각 요소를 제곱하는 작업을 하고 있다. lambda x: x**2
는 x
를 받아서 x**2
를 반환하는 람다 함수다. 이걸 map
함수와 함께 사용해서 리스트의 각 요소에 적용한 것이다.
또한, 람다 함수는 filter
함수와 함께 사용할 때도 유용하다. 예를 들어, 리스트에서 짝수만 걸러내고 싶다면:
numbers = [1, 2, 3, 4, 5, 6]
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens) # [2, 4, 6]
이 예제에서 lambda x: x % 2 == 0
은 x
가 짝수인지를 검사하는 람다 함수다. filter
함수는 이 람다 함수를 사용해서 numbers
리스트에서 짝수만 걸러낸다.
정렬에도 유용한 람다
람다 함수는 정렬할 때도 매우 유용하다. 예를 들어, 리스트를 특정 키를 기준으로 정렬하고 싶을 때 sorted
함수와 함께 사용할 수 있다.
points = [(1, 2), (3, 1), (5, 4), (2, 3)]
sorted_points = sorted(points, key=lambda point: point[1])
print(sorted_points) # [(3, 1), (1, 2), (2, 3), (5, 4)]
여기서는 points
리스트를 두 번째 요소를 기준으로 정렬하고 있다. lambda point: point[1]
는 각 튜플의 두 번째 요소를 반환하는 람다 함수다. 이걸 sorted
함수의 key
인자로 넘겨서 정렬 기준으로 삼은 것이다.
이렇게 파이썬의 람다 함수는 간단하고 유용한 도구다. 복잡한 함수 정의가 필요 없는 상황에서 간단하게 함수를 정의하고 싶을 때, 다른 함수의 인자로 작은 함수를 넘기고 싶을 때, 람다 함수를 사용하면 코드가 훨씬 깔끔해진다.
'Programming > Python' 카테고리의 다른 글
Python Web Server Gateway Interface(WSGI) (0) | 2024.05.27 |
---|---|
Django 5.0.x에서 psycopg3 사용하기(feat. 삽질) (0) | 2024.04.05 |
django(5)-Django REST Framework (0) | 2024.03.21 |
django(4)-admin site (0) | 2024.03.20 |
django(3)-database API (0) | 2024.03.20 |