filter 함수
filter 함수
는 반복 가능한 자료들 중 특정 조건에 맞는 요소들만 추출할 때 사용한다.
filter(function, iterable)
- function : 필터링을 적용시킬 함수
- iterable : 반복 가능한 자료(리스트, 튜플 등)
filter 함수의 반환 값은 filter 객체이기 때문에 해당 자료형을 list나 tuple로 형 변환해야 한다.
filter 함수는 iterator에 들어온 값들을 하나하나 function에 넣어서 반환이 true인 값을 필터링해서 다시 리스트로 만들어준다.
filter 함수를 사용하지 않을 때와 사용할 때의 소스를 확인해보자.
- for 문 이용
def is_even(x):
if x % 2 == 0:
return True
return False
arr = []
for val in range(1, 11):
if is_even(val):
arr.append(val)
print(arr)
[2, 4, 6, 8, 10]
- filter 함수 이용
def is_even(x):
if x % 2 == 0:
return True
return False
arr = list(filter(is_even, range(1,11)))
print(arr)
[2, 4, 6, 8, 10]
filter 함수 예제
arr = [1, 10.2, 100.3, 2.3, 20.2, 200.3, 3, 30, 300]
def func1(n):
if n < 10:
return True
return False
def func2(n):
if isinstance(n , int):
return True
return False
result1 = list(filter(func1 ,arr))
result2 = list(filter(func2 ,arr))
print(result1)
print(result2)
[1, 2.3, 3]
[1, 3, 30, 300]
def Fillterfunc(num):
return num > 40
numlist = [10, 20, 30, 40, 50, 60, 70, 80, 90]
result = list(filter(Fillterfunc, numlist))
print(result)
[50, 60, 70, 80, 90]
일반적인 함수뿐만 아니라 람다함수와 함께 사용할 수 있다.
numlist = [1, 2, 3, 4, 5, 6, 7, 8, 9]
result = list(map(lambda x : x % 2 == 0, numlist))
print(result2)
[2, 4, 6, 8]
반응형
'Python' 카테고리의 다른 글
[Python] ord(), chr() 함수 (162) | 2024.01.25 |
---|---|
[Python] all(), any() 함수 (147) | 2024.01.23 |
[Python] map() 함수 (139) | 2024.01.19 |
[Python] 입출력 함수 (124) | 2024.01.18 |
[Python] 함수 (125) | 2024.01.17 |
댓글