filter
- 말그대로 필터해주는 역할을 해준다
- iterator에 들어온 값들을 하나씩 function에 넣어 반환이 true값을 필터링 하여 다시 리스트로 만들어 주는 함수
사용법
- filter(function, iterator)
- function : 필터링을 적용시킬 함수
- iterator : 반복 가능한 값
- filter의 반환 값이 filter 객체 이기 때문에 list(filter(함수,리스트)) 리스트로 형 변환을 해주어야 한다.
isinstance
- 첫 번째 인자와 두 번쨰 인자랑 같은 타입인지 확인하는 함수
- function에 부합하면 True, 부합하지 않으면 False를 반환한다.
사용법
- isinstance(iterator, function)
- iterator : 반복 가능한 값
- function : 조건
def find_two(x):
if x%2 == 1:
return True
return False
arr1 =[]
for val in range(1,12):
if find_two(val):
arr1.append(val)
print(f'arr function:{arr1}')
arr2= list(filter(find_two, range(1,12)))
print(f'arr filter:{arr2}')
arr function:[1, 3, 5, 7, 9, 11]
arr filter:[1, 3, 5, 7, 9, 11]
filter함수와 일반 함수
arr = [1, 12.6, 23.5, 3.4, 5.9]
def func1(x):
if x<10:
return True
return False
def func2(x):
if isinstance(x,int):
return True
return False
def func3(x):
return isinstance(x, float)
a1= list(filter(func1, arr))
a2= list(filter(func2, arr))
a3= list(filter(func3, arr))
print(f'basic list : {arr}')
print(f'x<10 list : {a1}')
print(f'int list : {a2}')
print(f'float list : {a3}')
>>>
basic list : [1, 12.6, 23.5, 3.4, 5.9]
x<10 list : [1, 3.4, 5.9]
int list : [1]
float list : [12.6, 23.5, 3.4, 5.9]
filter함수와 lambda함수
arr = [1, 12.6, 23.5, 3.4, 5.9]
a1 = list(filter(lambda x : x<10, arr))
a2 = list(filter(lambda x : isinstance(x, int),arr))
a3 = list(filter(lambda x : isinstance(x, float),arr))
print(f'basic list : {arr}')
print(f'x<10 list : {a1}')
print(f'int list : {a2}')
print(f'float list : {a3}')
>>>
basic list : [1, 12.6, 23.5, 3.4, 5.9]
x<10 list : [1, 3.4, 5.9]
int list : [1]
float list : [12.6, 23.5, 3.4, 5.9]