Python

Python, filter()

hwangyoungjae 2016. 4. 21. 20:08

리스트내장의 if문으로 필터링 하는 방법과 동일한 기능을 하는 함수

입력받은 시퀸스형객체를 순회하며함수의 결과가 True인 경우만을 묶어 반환

 

filter(<함수 | None> , <이터레이션가능 자료형>

 

첫번째 인자는 필터링할 방법을 제공하는 함수를 사용,

None을 사용시 아무 필터링도 수행하지 않음

>>> L = [10,25,30]

>>> IterL = filter(None,L) #첫번째 인자를 None로 주어 필터링 수행하지 않음

>>> IterL

<filter object at 0x0105AE90>

>>> for i in IterL:

             print(i)

10

25

30

 

20보다 큰경우 True, 그렇지 않은경우 False를 반환하는 함수 생성후 필터에 함수 사용

>>> def Big20(i):

             return i > 20

 

>>> L = [10, 25, 30]

>>> IterL = filter(Big20,L) #필터사용으로 20보다 큰 값만으로 새로운리스트객체 생성

>>> for i in IterL:

             print(i)

25

30

 

간단한 함수 같은경우 lambda함수를 이용하여 간단히 사용가능

>>> IterL = filter(lambda i:i > 20,L)

>>> for i in IterL:

             print(i)

25

30