[파이썬] lambda 함수와 filter() 함수

Python에서 함수를 정의하는 여러 가지 방법이 있습니다. 그 중에서도, lambda 함수filter() 함수는 코드를 간결하게 작성할 수 있는 매우 유용한 도구입니다. 이 블로그 포스트에서는 lambda 함수와 filter() 함수를 소개하고, 실제 사용 예제를 살펴보겠습니다.

Lambda 함수란?

Lambda 함수는 익명 함수로도 알려져 있으며, 일회성으로 사용하거나 간단한 기능을 구현할 때 주로 사용됩니다. 일반적인 함수와는 달리 이름이 없기 때문에 한 번 정의하면 다시 사용할 수 없습니다.

Lambda 함수의 구문은 다음과 같습니다:

lambda arguments: expression

간단한 예를 들어보겠습니다:

# 두 개의 수를 더하는 lambda 함수
add = lambda x, y: x + y

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

위의 예제에서는 lambda x, y: x + y로 두 개의 인자를 더하는 lambda 함수를 정의했습니다. 이 함수를 호출하면 5와 3을 더한 결과인 8이 출력됩니다.

Lambda 함수는 다른 함수의 인자로 사용되거나 변수에 할당되어 사용될 수도 있습니다. 이를 통해 코드의 가독성과 간결성을 높일 수 있습니다.

filter() 함수란?

filter() 함수는 주어진 시퀀스에서 지정된 조건을 만족하는 요소들로만 구성된 이터레이터를 생성합니다. filter() 함수는 두 개의 인자를 받습니다: 필터링 함수와 시퀀스입니다.

filter() 함수의 구문은 다음과 같습니다:

filter(function, sequence)

간단한 예를 들어보겠습니다:

# 1부터 10까지의 숫자 중에서 짝수만 필터링하는 예제
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

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

위의 예제에서는 lambda x: x % 2 == 0로 짝수인지를 체크하는 lambda 함수를 정의하고, numbers 리스트에서 짝수만 필터링하여 even_numbers 리스트에 저장했습니다.

filter() 함수는 필터링 함수가 True를 리턴하는 모든 요소들로 이루어진 이터레이터를 반환합니다. 따라서 이를 리스트로 변환하기 위해 list() 함수를 사용했습니다.

마무리

Lambda 함수와 filter() 함수는 Python 프로그래밍에서 코드를 더 간결하게 작성할 수 있는 도구입니다. 간단하면서도 강력한 기능을 가지고 있으므로, 적절하게 사용하면 코드의 가독성과 유지보수성을 높일 수 있습니다.

또한, lambda 함수와 filter() 함수는 map() 함수나 reduce() 함수와 함께 사용하여 더 복잡한 작업을 수행하는데에도 유용합니다.

더 많은 자세한 내용과 예제는 Python 공식 문서를 참고하시기 바랍니다.