파이썬

[Python] 람다 / lambda 함수

audwndl 2024. 10. 4. 12:14

람다 함수는 이름이 없는 익명 함수로, 주로 한 줄의 간단한 표현식으로 정의됩니다.

lambda arguments: expression

여기서 arguments는 함수에 전달할 인자를 의미하고, expression은 반환할 값입니다.


람다 함수의 특징

  1. 간결성: 람다 함수는 간단한 연산을 짧은 코드로 표현할 수 있습니다.
  2. 익명성: 함수에 이름을 부여하지 않아도 되므로, 일회성 작업에 적합합니다.
  3. 고차 함수와의 호환성: 람다 함수는 map(), filter(), sorted()와 같은 고차 함수와 잘 어울립니다.

1. 기본 사용법

람다 함수

add = lambda x, y: x + y
print(add(3, 5))  # 출력: 8

일반 함수

def add(x, y):
    return x + y

print(add(3, 5))  # 출력: 8

2. 리스트 정렬

points = [(2, 3), (1, 2), (4, 1)]
sorted_points = sorted(points, key=lambda point: point[1])
print(sorted_points)  # 출력: [(4, 1), (1, 2), (2, 3)]

3. 필터링

numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # 출력: [2, 4, 6]

4. 맵핑

numbers = [1, 2, 3, 4]
squares = list(map(lambda x: x ** 2, numbers))
print(squares)  # 출력: [1, 4, 9, 16]

람다 함수의 단점

람다 함수는 간단한 표현식에는 유용하지만, 복잡한 로직이나 여러 줄의 코드를 포함할 수 없기 때문에 가독성이 떨어질 수 있습니다. 따라서 복잡한 함수는 일반 함수로 정의하는 것이 좋습니다.