반응형

 

 

filter() 함수는 리스트의 요소를 함수에 넣고 리턴된 값이 True인 것으로, 새로운 리스트를 구성해주는 함수입니다.

filter( 함수, 리스트 )

 

filter 함수도 map과 마찬가지로 함수를 인자로 전달받는다.

그리고 이 함수는 값을 걸러내는 기준이 된다. 

 

filter 함수는 값을 걸러내는 기능을 제공하는 함수입니다.

 

 

 

[ 예제 1 ] 간단한 예를 입력해 보세요.

def is_odd(n):
    return n % 2

st = [1, 2, 3, 4, 5]
ost = list(filter(is_odd, st))
print(ost)

 

ost = list ( filter ( is_odd, st ))

 

filter 함수의 첫 번째 인자는

"True 또는 False를 반환하는 함수"

 

filter 함수의 두 번째 인자는

"리스트나 튜플과 같이 값을 저장하고 있는 iterable 객체" 

 

 

즉, 위 예제에서 filter는 st에 저장된 값들을 하나씩 꺼내서 is_odd에 전달한다. 그리고 is_odd가 True를 반환하는 값들만 따로 모은다.

그리고 이 값들을 얻을 수 있는 iterator 객체를 반환한다. 

 

 

 

 

[ 예제2 ] 위 예제를 람다식으로 다시 코딩해 보자.

st = [1, 2, 3, 4, 5]
ost = list(filter(lambda n : n % 2, st))
print(ost)

 

 

 

 

[ 예제3 ] 10이하의 자연수 중에서 3읭 배수만 리스트에 담는 프로그램을 작성해 보세요.(filter와 람다식)

st = list(range(1, 11))
fst = list(filter(lambda n : not(n % 3), st))
print(fst)

 

 

 

 

[ 예제4 ] 1 ~ 10의 수중 3의  배수만 제곱수로 리스트에 담는 프로그램을 작성해 보세요.

st = list(range(1, 11))
fst = list(filter(lambda n : not(n % 3), map(lambda n : n **2 , st)))
print(fst)

 

fst = list ( filter ( lambda n : not (n % 3), map ( lambda n : n **2 , st)))

 

 

실행 순서 ① map ( lambda n : n **2 , st)

리스트 st에 1, 4, 9,16, 25, 36, 49, 64, 81, 100이 저장된다.

 

 

실행 순서 ② filter ( lambda n : not (n % 3)

리스트 fst에 [ 9, 36, 81] 3의 배수만 남게 된다.

반응형

'파이썬' 카테고리의 다른 글

29. 파이썬 iterable 객체와 iterator 객체  (0) 2024.01.31
28. 파이썬 람다  (0) 2024.01.31
26. 파이썬 map함수 - 1  (0) 2024.01.30
25. 파이썬 입력 sys 라이브러리  (0) 2023.07.29
24. 파이썬 리스트  (0) 2022.11.11
Posted by 명문코딩컴퓨터
,