filter함수 정의

filter 함수는 입력된 리스트 에서 함수 조건에 맞는 원소들을 추출하는 함수입니다.

※filter 함수는 리스트 뿐만 아니라 딕셔너리, 튜플 등 반복가능한 개체를 인자로 받을 수 있습니다.

filter 함수 용도

filter함수는 조건에 맞는 데이터를 뽑아낼 때 사용합니다.

filter 함수 사용법

: filter(함수,리스트) fliter 함수는 두번째 인자로 들어온 리스트 중에서 첫번째 인자로 들어온 함수에 포함되는 원소들을 추출합니다.

※filter 함수 정리: 첫번째 인자로 들어온 함수가 두번째 인자로 들어온 데이터를 필터링

filter 함수 예시

fliter함수를 이용하기 위해서는 첫번째 인자에 들어갈 함수를 정의해야 합니다.

예시1: 0보다 큰 양수 추출

numbers=[-2,0,-5,6,-9,7,3]
def function(n):
 return n>0
result = list(filter(function,numbers))
print(result)

실행결과

[6, 7, 3]

예시2: 문자열에 들어있는 숫자 추출

myname="Hello my name is skytin1004"
result=list(map(int, filter(lambda u: u.isdigit(), myname))) 
print(result)
##isdigit함수: 문자열이 전부 숫자로만 이루어져있으면 True 리턴
##map함수:두번째 인자로 들어온 myname을 쪼개서 하나하나씩 적용
##filter함수:map에의해 쪼개어진 myname의 각 문자가 숫자인지 판별

실행결과

[1, 0, 0, 4]

예시2번은 앞으로 서술할 map함수와 isdigit함수에서도 계속 다루겠습니다.

참고: map함수 정리하기

isdigit함수 정리하기

참고하기

참고1

filter함수를 이용할 때 lambda함수를 사용하면 좀 더 편리하게 fliter함수를 이용할 수 있습니다.(예시2 참고)

참고2

filter함수는 list가 아닌 filter타입으로 리턴하는 함수입니다.filter함수를 사용할 때는 예시 처럼 원하는 타입에 맞게 변환시켜서 사용합니다.(예시 1: list(filter(function,numbers)) 참고)