Python 강좌 : 제 22강 - 필터 함수

Python filter

Python 강좌 : 제 22강 - 필터 함수
[ Python ] - 윤대희

필터(filter) 함수


필터(filter) 함수는 반복 가능한 데이터(목록, 사전 등)의 요소에서 특정 조건을 만족하는 값들만 추출합니다.

필터 함수는 결괏값 = filter(조건 함수, 범위)의 형태로 사용합니다.

조건 함수논리값(True or False)을 반환하는 함수를 사용하며, 참(True)이 되는 값만 반환합니다.

lambda 함수와 list 함수 등을 같이 사용하여 결과를 반환합니다.



함수 생성


f = lambda x: x > 0

print(list(filter(f, range(-5, 5))))
결과
[1, 2, 3, 4]

filter(함수, 범위)를 사용하여 참(True)의 결과를 반환합니다.

범위의 값을 함수에 대입해 참이 되는 값만을 묶어 반환홥니다.

list() 또는 set() 등의 구문을 추가하지 않으면 <filter object at 0x05B3A830> 등의 iterator 형태로 출력됩니다.



사용자 정의 함수 사용


def func(x):
    if x > 0:
        return x
    else:
        return x - 100


print(list(filter(func, range(-5, 5))))
결과
[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]

필터 함수에서 사용되는 함수는 논리값을 반환하는 함수로 인지합니다.

그러므로, 반환값이 0이 아닌 모든 값은 참(True) 값으로 간주하게 됩니다.

결국, 어떤 반환 형태도 0을 반환하지 않으므로 모두다 참 값이 되어, 범위를 그대로 반환하게 됩니다.



def func(x):
    if (x / 2) - 1 > 0:
        return True
    elif x % 2 == 0:
        return True 
    else:
        return False


print(list(filter(func, range(-5, 5))))
결과
[-4, -2, 0, 2, 3, 4]

사용자 정의 함수를 이용한다면, 복잡한 형태의 필터 함수를 쉽게 구현할 수 있습니다.

반환값이 인 경우에만 해당 값을 반환하므로, 특정한 형태의 데이터만 추출할 수 있습니다.


  • Tip : 반환값이 없는 경우, 거짓(False) 값으로 간주해 필터 함수에서 값이 반환되지 않습니다.


Book Image

책이 출간되었습니다!

C#과 파이썬을 활용한 OpenCV 4 프로그래밍

컴퓨터 비전 기초 이론부터 머신러닝을 활용한 영상 처리 프로젝트까지

  • C# OpenCvSharp4
  • Python OpenCV4
  • Using Tesseract
  • Using TensorFlow
  • Using Regular Expression
  • 윤대희 저 | 위키북스

    [yes24 바로가기] [알라딘 바로가기] [교보문고 바로가기]

    후원하기


    ⤧  Previous post Python 강좌 : 제 21강 - 람다 함수 ⤧  Next post Python 강좌 : 제 23강 - 맵 함수
    Python Category