쿼카러버의 기술 블로그

[Python Advanced] filter 함수란? (쉬운 설명 & 다양한 예시) 본문

[Python]

[Python Advanced] filter 함수란? (쉬운 설명 & 다양한 예시)

quokkalover 2022. 2. 5. 15:30

Filter

filter()는 파이썬의 내장 함수로, 여러 개의 데이터에서 특정 조건으로 일부의 데이터를 추려낼 때 사용한다.

특징

기본적인 사용방법은 아래와 같다.

filter(function, iterator)
  • iterator에 들어온 값들을 하나하나 function에 넣어서결과가 참인지, 거짓인지에 따라 해당 요소를 포함할지 말지를 결정한다.

사용 예시

1) letter라는 리스트 내에서 vowel만을 걸러내고 싶을 때

letters = ['a', 'b', 'd', 'e', 'i', 'j', 'o']

# a function that returns True if letter is vowel
def filter_vowels(letter):
    vowels = ['a', 'e', 'i', 'o', 'u']
    return True if letter in vowels else False

filtered_vowels = filter(filter_vowels, letters)

# converting to tuple
vowels = tuple(filtered_vowels)
print(vowels)

2) None이 아닌 element만 걸러내고 싶을 때

# random list
random_list = [1, 'a', 0, False, True, '0']

filtered_iterator = filter(None, random_list)

#converting to list
filtered_list = list(filtered_iterator)

print(filtered_list)

일반적으로 파이썬에서는 None이 아닌 값을 boolean으로 변환하면 True를 리턴한다. 이를 활용해서 filtering할 수 있다.

 

3) lambda함수를 사용할 때

target = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = filter(lambda x : x%2==0, target)
print(list(result))

함수를 재사용할 이유가 없다면, 보다 간결하게 lambda를 활용해서 축약된 코드를 쓸 수 있다.

 

 

lambda에 대한 설명과 다양한 활용 예시가 궁금하다면 아래 글을 참고하길 바란다!

https://etloveguitar.tistory.com/97

 

[Python Advanced] 람다 함수란? (쉬운 설명 & 다양한 예시)(map, filter, reduce)

Lambda 함수란 파이썬에서 lambda는 런타임에서 생성해서 사용할 수 있는 익명 함수다. 자바스크립트에서의 람다 함수와는 조금은 다르다. 특징 : 람다는 N개의 매개변수를 가질 수 있지만, 하나의 e

etloveguitar.tistory.com

 

 

추가로, 파이썬의 다른 내장함수들에 대한 글을 정리해두었는데, 필요하다면 참고하길 바란다.

 

[Python Advanced] map함수란? (쉬운 설명 & 다양한 예시)

[Python Advanced] reduce 함수란? (쉬운 설명 & 다양한 예시)

 

 

 

 

참고자료

https://wikidocs.net/22803

https://www.programiz.com/python-programming/methods/built-in/filter

https://www.daleseo.com/python-filter/

Comments