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)) 참고)