[플레이데이터 빅데이터 부트캠프]Python filter함수 & reduce 함수

filter 함수

  • 이터러블의 각 요소에 대해 function이 참인 것만 반환하는 함수이다.
filter(function, iterable)
ex = [1, 2, 3, 4, 5]

list(filter(lambda x : x%2 == 0, ex))
[2, 4]

예제1) 리스트 컴프리헨션으로 30까지 리스트 만들어주시고 3의배수만 필터로 걸러내주세요..

list(filter(lambda x: x % 3 == 0, [i for i in range(1, 31)]))
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

예제2) filter 함수로 참임 것만 반환하는 함수를 만들어보자.

x2 = [True, False, True, True, False]
list(filter(None, x2)) # 참인 것만 반환하는 함수
[True, True, True]

reduce 함수

  • reduce는 반복 가능한 객체의 각 요소를 지정된 함수로 처리한 뒤 이전 결과와 누적해서 반환한다.
  • reduce는 파이썬 3부터 내장 함수가 아니다.
  • functools 모듈에서 reduce 함수를 가져와야 한다.
reduce(function, iterable, initializer=None)
from functools import reduce

# reduce(function, iterable, initializer=None)
reduce(lambda x, y :x+y, [1,2,3,4,5])

reduce(lambda x, y :x+y, [1,2,3,4,5], 35)
50

reduce 함수는 초기값도 설정할 수 있다. 아래와 같이 35+1+2+3+4+5=50이 나온다.