이번 포스팅은 파이썬의 내장 함수인 filter() 함수에 대한 내용을 정리했습니다.
filter() 함수
- 파이썬의 내장 함수 filter() 함수는 iterable한 객체, 리스트와 같은 자료들을 필터링하는 역할을 하는데 여기서 필터링이란 특정 조건에 맞는 요소들만 출력한다는 의미입니다.
filter() 함수 기본 형태 : filter(function, iterable)
- function 인자는 조건을 정하는 함수이며, iterable은 list와 같은 순회 가능한 자료형입니다.
- filter() 함수를 사용하게 되면 코드를 조금 더 간결하게 만들 수 있습니다.
예시) list에서 특정 크기 이하의 숫자만 출력하기
- filter() 함수를 사용하지 않고 구현
num_list = [10, 20, 30, 40, 50, 60, 70, 80]
for n in num_list :
if n > 40 :
filter_list.append(n)
print(filter_list)
>>> [50, 60, 70, 80]
- filter() 함수를 사용하여 구현
def FilterFunc(num):
return num > 40
num_list = [10, 20, 30, 40, 50, 60, 70, 80]
filter_list = list(filter(FilterFunc, num_list))
print(filter_list)
>>> [50, 60, 70, 80]
- filter함수를 사용하지 않은 것과 사용한 것을 예시를 들었는데 이렇게 보면 크게 코드가 줄어든 느낌은 나지 않습니다.
하지만 filter 함수는 lambda를 사용한다면 엄청나게 간결한 형태로 작성이 가능합니다.
예시) lambda 표현식으로 filter 함수 사용
num_list = [10, 20, 30, 40, 50, 60, 70, 80]
filter_list = list(filter(lambda n : n > 40, num_list))
print(filter_list)
>>> [50, 60, 70, 80]
- lambda 표현식과 함께 filter 함수를 쓰니 훨씬 간결한 형태의 코드가 작성되었습니다.
주의할 점
- filter 함수를 사용하시면서 주의할 점은 결과 데이터 타입이 filter 타입의 형태를 반환하는 점입니다.
num_list = [10, 20, 30, 40, 50, 60, 70, 80]
filter = filter(lambda n : n > 40, num_list)
print(type(filter))
>>> <class 'filter>
- 앞서 예시들을 보시면 filter 함수를 사용하고 list()를 통해 list 타입으로 바꿔준 것을 볼 수 있습니다.
- list(), tuple() 등 원하는 타입으로 바꿔서 사용하시길 바랍니다.
- 파이썬의 내장 함수인 filter 함수에 대해 알아보았습니다.
- def를 이용하여 함수로 조건을 만들기보다는 lambd 표현식을 사용하여 filter 함수를 사용했을 때 더 간결한 코드를 작성할 수 있다는 것을 알았습니다.
틀린 점이나 질문이 있으시면 댓글로 남겨주세요!
감사합니다 :)
'Python > Python 정리' 카테고리의 다른 글
[Python] with 구문 이해 (2) | 2022.06.10 |
---|---|
[Python] for ~ else 문 정리 (0) | 2022.06.09 |
[Python] zip() 이해 (0) | 2022.04.28 |
[Python] enumerate 이해 (0) | 2021.08.07 |
[Python] self 이해 (0) | 2021.07.29 |