Programming/Python
filter() 리스트, 튜플 등에서 조건에 맞는 요소만 추려내는 내장함수
makeitworth
2021. 5. 4. 12:08
filter(조건 함수, 순회 가능한 데이터)
입력: 순회가능한 데이터 (리스트, 튜플), 조건함수 (파이썬 내장함수, 사용자 정의함수)
출력: filter객체
filter 는 리스트, 튜플, 셋 같은 순회 가능한 자료 타입 (iterable data type)의 원소들을 특정 함수를 통해 걸러서 출력하는 내장 함수이다.
lst = [1,2,3,4,5]
def over_4(x):
return x > 4
list(filter(over_4, lst))
[5]
4이상의 수만 리턴하는 함수 over_4 를 정의하고, filter 내에 함수와, 리스트를 넣었더니, 함수의 조건에 해당되는 요소들만 출력되었다.
함수를 미리 정의하지 않고 람다 함수를 활용해서 한 줄에 처리할 수도 있다.
list(filter(lambda x: x > 4 ,lst))
[5]
map()함수와 비슷하게 filter()함수도 출력값이 filter 객체이다. list()나 tuple() 등의 함수로 싸주지 않으면, filter객체가 리턴되기 때문에 조건에 맞는 원소들을 리턴 받을 수 없다.
filter(lambda x: x > 4 ,lst)
<filter at 0x10c857280>
list comprehension을 활용해도 필터 함수와 같은 결과를 얻을 수 있다.
[x for x in lst if x > 4]
[5]