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