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#과 파이썬용 OpenCV의 데이터 형식과 행렬 및 배열 연산
  • 이미지/동영상/카메라를 활용한 입출력과 결과 저장
  • 전처리 과정과 정보를 탐색하기 위한 이미지 변형
  • 유의미한 정보를 검출하기 위한 이미지 변환
  • 이미지에서 정보를 검출 및 인식
  • 객체 검출을 포함한 모션 추적
  • K-means, KNN, SVM 등의 머신러닝 알고리즘 적용 방법
  • 카페(Caffe), 다크넷(Darknet), 텐서플로 모델을 활용한 딥러닝 모듈 적용 방법
  • Tesseract-OCR과 C# OpenCvSharp4를 활용한 프로젝트
  • 텐서플로와 Python OpenCV4를 활용한 프로젝트
  • 윤대희 저 | 위키북스

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

    후원하기


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