[Python] 파이썬, 데이터를 걸러주는 Filter 내장함수

    파이썬에서는 리스트(List)와 같은 반복적인 데이터를 특정 조건에 맞으면 걸러주는 Filter 내장함수가 있다. 다만 필터함수는 사용법이 특이한 것이 별도의 함수가 필요하다. 인자값을 2개 전달하는데 하나는 필터링을 위한 함수와 데이터이다.

     

    파이썬 필터 함수

     

    필터 사용법

    filter (함수, 데이터)

     

    필터가 없을 경우

    우선 filter함수가 없을 경우 처리 방법에 대해서 생각을 해보도록 한다.

    numbers = range(1, 11)
    
    # 짝수만 결과 리턴
    def is_even(number):
        return number % 2 == 0   # 짝수일 경우 True
    
    result = []
    for number in numbers:
        if is_even(number):
            result.append(number)
    
    print(result)
    
    # [2, 4, 6, 8, 10]

     

    우선 필터가 없을 경우 위와 같이 필터의 기능을 직접 구현할 수 있다. 소스가 간결한 것처럼 느껴질 수 있지만, for문으로 하나씩 loop 처리하는 것이 소스가 파이썬스럽지 않을 수 있다.

     

    필터 사용

    numbers = range(1, 11)
    
    # 짝수만 결과 리턴
    def is_even(number):
        return number % 2 == 0   # 짝수일 경우 True
    
    result = list(filter(is_even, numbers)) # list로 감싸지 않을 경우 filter 객체형으로 리턴
    print(result)
    
    # [2, 4, 6, 8, 10]

     

    동일한 소스가 깔끔해지고, 매우 파이썬스럽게 변경되었다. filter로 호출 할때 감싸지 않을 경우 filter 객체형으로 리턴이 되는데 본 예제처럼 list 형으로 감쌀경우 결과가 list형으로 변환된다.

     

    반응형

    댓글

    Designed by JB FACTORY