안녕하세요, 이번 글에서는 파이썬의 강력한 함수 중 하나인 ‘filter() function’에 대해 알아보겠습니다. 이 함수는 리스트나 다른 이터러블한 객체에서 특정 조건을 만족하는 요소들만 선별하여 새로운 이터러블 객체를 생성하는 데 매우 유용합니다. 데이터 분석이나 웹 개발 등 다양한 분야에서 필터링 작업을 효율적으로 수행할 수 있게 도와주는 중요한 도구입니다.

‘filter() function’ 기본 개념 이해하기
이 섹션에서는 ‘filter() function’의 핵심 원리와 개념을 살펴보겠습니다. 이 함수가 어떻게 동작하는지 이해하면, 데이터 처리에서 많은 시간을 절약할 수 있습니다.
기본 문법 및 구조
‘filter() function’은 두 개의 인자를 받습니다: 첫 번째 인자는 필터링 조건을 정의하는 함수이고, 두 번째 인자는 필터링할 이터러블 객체입니다. 이 함수는 조건에 맞는 요소들만 포함하는 새로운 이터러블 객체를 반환합니다.
# filter() 기본 문법
filtered_result = filter(function, iterable)
# 예시 코드
def is_even(num):
return num % 2 == 0
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(is_even, numbers)
print(list(even_numbers)) # 출력: [2, 4, 6]
실용적인 활용 예제
이제 ‘filter() function’을 실제로 어떻게 활용할 수 있는지 다양한 예제를 통해 알아보겠습니다. 이러한 예제는 여러분이 실무에서 이 함수를 활용하는 데 큰 도움이 될 것입니다.
예제 1
간단한 예제로 홀수 필터링을 해보겠습니다. 주어진 리스트에서 홀수만을 추출하여 새로운 리스트를 생성합니다.
# 홀수만 필터링하는 예제
def is_odd(num):
return num % 2 != 0
numbers = [10, 15, 20, 25, 30]
odd_numbers = filter(is_odd, numbers)
print(list(odd_numbers)) # 출력: [15, 25]
예제 2
조금 더 복잡한 예제로, 문자열 리스트에서 특정 길이 이상인 문자열만 필터링해보겠습니다.
# 문자열 길이 기준 필터링
def longer_than_five(s):
return len(s) > 5
words = ["apple", "banana", "cherry", "date", "elderberry"]
long_words = filter(longer_than_five, words)
print(list(long_words)) # 출력: ['banana', 'cherry', 'elderberry']
주의사항 및 팁
‘filter() function’을 사용할 때 흔히 하는 실수와 알아두면 좋은 팁들을 살펴보겠습니다. 이를 통해 더욱 효율적이고 오류 없는 코드를 작성할 수 있습니다.
흔히 하는 실수
많은 초보자가 filter()의 결과를 리스트로 사용하는 것을 잊곤 합니다. filter()는 이터레이터를 반환하므로, 이를 리스트나 다른 이터러블 형태로 변환해야 합니다.
# 잘못된 사용 예
numbers = [1, 2, 3, 4]
filtered_numbers = filter(lambda x: x > 2, numbers)
# 리스트로 변환해야 함
print(list(filtered_numbers)) # 출력: [3, 4]
알아두면 좋은 팁
filter()와 함께 lambda 함수를 사용하면 코드를 더욱 간결하게 만들 수 있습니다. 특히 간단한 조건식을 사용할 때 유용합니다.
# lambda를 사용한 간결한 코드
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers)) # 출력: [2, 4, 6]
결론 및 요약
오늘은 ‘filter() function’에 대해 배워보았습니다. 이 함수는 조건에 따라 데이터를 필터링하는 데 매우 유용하며, 코드의 효율성을 크게 높일 수 있습니다. 여러분도 직접 다양한 조건을 적용하여 필터링 작업을 수행해 보세요. 꾸준한 연습이 실력 향상의 지름길입니다.