[파이썬(python)]-filter

배병진·2023년 7월 14일
0

개인공부-Python

목록 보기
22/22

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
#for 이용
arr1 =[]
for val in range(1,12):
  if find_two(val):
    arr1.append(val)
    
print(f'arr function:{arr1}')

#filter이용
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]
profile
history and study

0개의 댓글