오늘의 파이썬 공부: filter() function

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

오늘의 파이썬 공부: 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’에 대해 배워보았습니다. 이 함수는 조건에 따라 데이터를 필터링하는 데 매우 유용하며, 코드의 효율성을 크게 높일 수 있습니다. 여러분도 직접 다양한 조건을 적용하여 필터링 작업을 수행해 보세요. 꾸준한 연습이 실력 향상의 지름길입니다.