Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 filter() 함수 사용법과 예제 총정리

파이썬의 filter() 함수는 반복 가능한(iterable) 객체에서 특정 조건을 만족하는 요소만 골라내는 데 사용되는 내장 함수입니다. 이 글에서는 리스트에 조건을 적용해 원하는 요소만 추출하는 방법을 예제와 함께 자세히 살펴보겠습니다.

문법(Syntax)

filter(function, iterable)
function: iterable의 각 항목에 대해 실행할 함수
iterable: 필터링 대상이 되는 반복 가능한 객체

filter() 함수는 첫 번째 인자로 전달된 함수를 두 번째 인자인 iterable의 모든 요소에 하나씩 적용합니다. 이때 함수가 True를 반환하는 요소만 최종 결과에 포함되며, False를 반환하는 요소는 제외됩니다.

예제

아래 예제에서는 숫자를 2로 나눈 나머지를 확인하여 홀수인지 짝수인지 판별하는 함수를 정의합니다. 그리고 이 함수를 filter()를 통해 리스트에 적용해 짝수만 추출합니다.

listA = [15, 8, 21, 13, 32]
def findeven(x):
   if x %2 !=0:
      return False
   else:
      return True
evenum = filter(findeven, listA)
for x in evenum:
   print(x)

실행 결과(Output)

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

8
32

알아두면 좋은 점

파이썬 3에서 filter()는 필터 객체(filter object), 즉 이터레이터(iterator)를 반환합니다. 따라서 위 예제처럼 for 문으로 순회하거나, list() 함수를 사용해 리스트로 변환한 뒤 사용할 수 있습니다.

evenum = list(filter(findeven, listA))
print(evenum)  # [8, 32]

또한 간단한 조건이라면 별도의 함수를 정의하지 않고 람다(lambda) 표현식을 활용하면 코드를 더욱 간결하게 작성할 수 있습니다.

listA = [15, 8, 21, 13, 32]
evenum = list(filter(lambda x: x % 2 == 0, listA))
print(evenum)  # [8, 32]

이처럼 filter() 함수는 조건에 맞는 데이터만 손쉽게 걸러낼 수 있어, 리스트나 튜플 등 다양한 iterable을 다룰 때 매우 유용하게 활용됩니다.