[Python] map, filter, reduce

2016. 10. 4. 23:28프로그래밍/Python & dJango

파이썬에서 제공하는 map, filter, reduce에 대해서 알아보자.


1. map 


 > map의 첫번째 파라미터는 함수, 2번째 파라미터는 list가 들어가야한다.

 > map은 List를 리턴한다.



def add(number):

return number + 5

def minus(number):

return number - 5


arr = [1, 3, 6, 12]

result1 = map(add, arr)

print result1


result2 = map(minus, result1)


print result2



result

[6, 8, 11, 17]

[1, 3, 6, 12]




 > 아래의 예제는 람다와 함께 map을 사용한 예제이다.


arr = [30, 50, 100, 120] arr2 = [3, 5, 10, 12] arr3 = [130, 150, 300, 220] multip = map(lambda x, y, z : (x * 8 * 2) /y + z, arr, arr2, arr3 ) print multip div = map(lambda y : y / 2, multip) print div


result

[290, 310, 460, 380]

[145, 155, 230, 190]

 

 > 람다와 map을 함께 사용하여 계산하는 함수를 만들어보았다.

 > 여기서 주의해야할 사항은 list arr, arr2, arr3 값의 수가 맞지 않으면 에러가 발생하기 때문에 반드시 수를 맞춰줘야한다.



2. filter

 > 필터의 첫번째 파라미터는 함수, Boolean을 리턴하는 조건 혹은 값이 들어간다.

 > filter는 조건에 만족하는 값을 list 형태로 반환한다.



arr = ['h','e','l','l','o','w','o','r','l','d'] result = filter(lambda x : x == 'l', arr) print result



result


['l', 'l', 'l']



3.reduce

> reduce의 첫번째 파라미터는 함수, 두번째 파라미터는 list 가 들어간다.

> reduce는 두번째 파라미터의 값을 순차적으로 하나씩 대입한다.

> reduce는 하나의 결과값을 반환한다.


arr = [1,2,4,5] result = reduce(lambda x,y: x+y, arr) print result



12



'프로그래밍 > Python & dJango' 카테고리의 다른 글

[Python] closure  (0) 2016.10.07
Python 환경변수 가져오기.  (0) 2016.10.05
[dJango] compressor  (0) 2016.10.03
[Python] with 구문  (0) 2016.09.30
[django] template tag "with" 사용법  (0) 2016.09.30