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 공식 문서를 참고하시기 바랍니다.