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 |