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