본문 바로가기

라이브러리

[Python] filter() 함수 사용법

파이썬의 filter() 함수는 iterable 객체에서 지정된 함수를 이용하여 원소를 걸러내는 함수입니다.

 

filter() 함수는 두 개의 인자를 받습니다. 첫 번째 인자는 필터링 함수이고, 두 번째 인자는 필터링 함수를 적용할 iterable 객체입니다. 필터링 함수는 인자로 iterable의 각 원소를 받으며, True 또는 False 값을 반환합니다. 반환값이 True인 원소만 남기고 필터링을 수행합니다.

 

1. 예제


예를 들어, 아래와 같은 리스트가 있습니다.

 

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]


이 리스트에서 짝수만 남기고 싶으면 다음과 같이 filter() 함수를 사용할 수 있습니다.

 

def is_even(num):
    return num % 2 == 0

filtered = filter(is_even, numbers)


위 코드에서 is_even() 함수는 짝수인 경우 True를 반환합니다. filter() 함수는 is_even() 함수를 numbers 리스트의 각 원소에 적용하여 반환값이 True인 원소만 포함하는 새로운 이터러블 객체를 반환합니다. 따라서 filtered 객체는 [2, 4, 6, 8]과 같은 결과를 가집니다.

filter() 함수는 람다 함수를 사용하여 한 줄로 작성할 수도 있습니다.

 

filtered = filter(lambda num: num % 2 == 0, numbers)


filter() 함수는 새로운 이터러블 객체를 반환하므로, 결과를 리스트나 튜플 등으로 변환하여 사용할 수 있습니다.

 

even_numbers = list(filter(lambda num: num % 2 == 0, numbers))


위 코드는 numbers 리스트에서 짝수만 남긴 후, 그 결과를 리스트로 변환하여 even_numbers 변수에 할당합니다. even_numbers 변수는 [2, 4, 6, 8]과 같은 결과를 가집니다.