글
python map, filter, reduce
map(func, list, ...)
> outLIst = map(func, list)
list 의 각 인자를 func(x) 에 대입하여 새로운 outList 를 반환
> outList2 = map(func, list1, list2)
list1, list2 의 각각인자를 func(x, y) 에 대입하여 새로운 outList2 를 반환
* list3, list4, list5, ... 여러개 가능
> outList3 = map(None, list1, list2)
list1 = [1, 2, 3, 4]
list2 = [10, 20, 30, 40]
이경우
outList3 = [(1, 10), (2, 20), (3, 30), (4, 40)]
으로 나온다
* 부족한경우 None 으로 대치
** zip(list1, list2, ...) : 부족한 부분을 버리고 일치하는 부분까지만 map(None. list1, list2, ...) 과 동일하게 작업
filter(func, list)
> outList = filter(func, list)
list 의 각인자를 func(x) 에 대입하여 리턴이 True 인것만 outList에 추가해줌
* filter(None, list) 는 list 가 그대로 나옴
reduce(func, list[, startX])
> result = reduce(func, list)
list 의 각 인자를 func(x, y) 의 y에 대입한다
x 위치에는 list의 처음값을 넣고 한번연산 이후로는 이전 func(x, y) 의 결과값을 넣어준다
func = lambda x, y: x + y
list = [1, 2, 3, 4]
인경우
result = func(func(func(1, 2), 3), 4) = (((1 + 2) + 3) + 4) = 10
이 나온다
> result = reduce(func, list, startX)
처음시작하는 func(x, y) 의 x 값에 startX 를 사용하고 list 의 모든 인자는 y 위치에 들어간다
'프로그래밍 > Python' 카테고리의 다른 글
[Python] XML <=> Dict <=> JSON (0) | 2014.05.22 |
---|---|
python 리스트 내장 과 발생자 (0) | 2013.12.17 |
python 파일 용량 확인 (0) | 2013.11.19 |
ubuntu python mysqldb 설치 (0) | 2013.11.18 |
python setuptools 설치 (0) | 2013.09.20 |