콘텐츠로 건너뛰기
Home » Python의 람다 함수와 map, filter 사용법

Python의 람다 함수와 map, filter 사용법

  • 기준

파이썬의 람다 함수 이해하기

파이썬에서 람다(lambda) 함수는 익명 함수로, 이름이 없는 간단한 함수입니다. 일반적으로 함수를 정의할 때는 def 키워드를 사용하지만, 람다 함수는 간결하게 lambda 키워드를 사용하여 정의할 수 있습니다. 이러한 특성 덕분에 람다 함수는 코드의 가독성을 높이고, 순간적으로 필요할 때 빠르게 사용할 수 있는 도구입니다.

람다 함수의 기본 구조

람다 함수의 문법은 다음과 같이 간단합니다:

lambda 인자1, 인자2, ... : 표현식

예를 들어, 두 수를 더하는 람다 함수를 작성해보면 다음과 같습니다:

add = lambda x, y: x + y
result = add(2, 3)
print(result) # 5

여기서 x와 y는 매개변수이며, x + y는 반환값입니다.

람다 함수의 주요 활용

람다 함수는 주로 다른 함수의 인자로 전달할 때 유용합니다. 예를 들어, 리스트의 각 요소에 특정 작업을 수행하고자 할 때 map 함수를 사용하여 간편하게 처리할 수 있습니다.

map 함수와 람다

map 함수는 주어진 함수와 iterable(반복 가능한 객체)의 모든 요소에 대해 작업을 수행합니다. 다음은 리스트의 각 요소를 제곱하는 예입니다:

numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared) # [1, 4, 9, 16, 25]

위의 예에서 lambda x: x**2는 각 요소를 제곱하여 새로운 리스트를 생성합니다.

filter 함수와 람다

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가 짝수인지 확인하는 조건을 정의합니다.

람다 표현식의 특징

람다 함수의 몇 가지 주요 특징은 다음과 같습니다:

  • 익명성: 이름이 없으며, 필요할 때만 정의되고 사용됩니다.
  • 단일 표현식: 람다 함수는 단일 표현식만을 가질 수 있으며, 여러 줄의 코드를 포함할 수 없습니다.
  • 하나 이상의 매개변수: 람다 함수는 필요에 따라 여러 개의 매개변수를 가질 수 있습니다.

람다 표현식의 즉시 호출

람다 함수는 정의함과 동시에 호출할 수도 있습니다. 이를 즉시 호출하는 기능(IIFE)라고 합니다. 다음의 예를 보세요:

(lambda x: x + x)(2) # 출력: 4

이와 같이 람다 함수는 다양한 함수를 인자로 전달해야 하는 상황에서 매우 유용합니다.

정렬에서의 활용

람다 함수는 리스트를 특정 기준으로 정렬할 때도 효과적입니다. 예를 들어, 튜플 리스트를 두 번째 요소를 기준으로 정렬하고 싶을 때 다음과 같이 작성할 수 있습니다:

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)]

여기서 key=lambda point: point[1]는 각 튜플의 두 번째 요소를 기준으로 정렬하는 기준을 설정합니다.

람다 함수 사용 시 주의사항

람다 함수는 정의할 때 몇 가지 주의할 점이 있습니다. 예를 들어, 람다 표현식 내부에서 새로운 변수를 만들 수는 없으며, 외부에서 정의된 변수를 사용할 수는 있습니다.

y = 10
result = (lambda x: x + y)(5) # 유효하지만
# (lambda x: y = 10; x + y)(5) # 유효하지 않음

결론

파이썬의 람다 함수는 코드의 간결함과 가독성을 높이는 데 큰 도움이 됩니다. 람다 표현식을 활용하여 map, filter, sorted와 같은 함수와 결합할 때 특히 효과적입니다. 간단한 작업을 위한 빠른 함수를 필요로 할 때, 람다 함수를 통해 쉽게 구현할 수 있습니다. 다양한 상황에서 람다 함수를 적극적으로 활용해 보시기 바랍니다.

이러한 람다 함수의 특성을 잘 이해하고 활용한다면, 파이썬 프로그래밍에서 훨씬 더 효율적인 코드를 작성할 수 있을 것입니다.

자주 물으시는 질문

파이썬에서 람다 함수란 무엇인가요?

람다 함수는 이름이 없는 간단한 함수로, 주로 일회성 작업에 사용됩니다. 일반적인 함수와 달리 코드에서 짧고 직관적으로 정의할 수 있습니다.

람다 함수를 어떻게 활용할 수 있을까요?

람다 함수는 주로 다른 함수의 인자로 사용되어 효율적으로 데이터를 처리할 때 유용합니다. 특히 map, filter, sorted 함수와 함께 활용하여 반복적인 작업을 간편하게 수행할 수 있습니다.

람다 함수의 주요 특징은 무엇인가요?

람다 함수는 익명성이 있으며, 단일 표현식을 사용합니다. 매개변수를 여러 개 가질 수 있지만, 복잡한 코드 블록을 포함할 수는 없습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다