본문 바로가기

나 취준생/파이썬

자료형의 특정 조건 값만 추출해내는 함수 (filter)

320x100

# 자료형의 특정 조건 값만 추출해내는 함수 (filter)


파이썬 내장함수인 filter()는 리스트와 같은 자료형에서

특정 조건을 만족하는 값만 편리하게 추출할 수 있는 방법을 제공한다.


filter()의 첫번째 인자는 특정 조건의 값을 추출하는 함수가 입력되며,

두번째 인자(입력매개변수)에는 리스트와 같은 자료형이 입력된다.



예제 : 숫자가 나열되어 있는 리스트에서 짝수만 추출해내는 코드


a=[1,2,3,4,5,6,7,8,9,10]


1. 숫자를 입력하면 짝수라면 결과를 출력하고 홀수면 출력하지 않는 함수


1
2
3
4
5
6
7
8
def get_even(num):
    if num%2==0:
        return num
    else:
        return
    
print(get_even(2))
print(get_even(5))




2. filter 함수와 get_even 함수를 이용해서 a 리스트에서 짝수를 추출하기


1
2
3
4
5
6
7
8
9
def get_even(num):
    if num%2==0:
        return num
    else:
        return
 
a=[1,2,3,4,5,6,7,8,9,10]
result=filter(get_even,a)
print(result)




해주면 내가 원하는 리스트가 아니라 객체의 위치?가 출력 되어버린다(!)


1
2
3
4
5
6
7
8
9
10
def get_even(num):
    if num%2==0:
        return num
    else:
        return
 
a=[1,2,3,4,5,6,7,8,9,10]
result=filter(get_even,a)
print(result)
print(list(result))




당황하지 말고, list()로 감싸서 리스트로 변환시켜주면 다음과 같이 리스트로 출력된다.




예제 : 리스트에서 값이 300 이상만 출력하는 코드


1
2
3
4
5
6
7
8
9
def up_300(num):
    if num>=300:
        return num
    else:
        return
 
b=[100,352,56,395,210,791]
result=filter(up_300,b)
print(list(result))



반응형