더북(TheBook)

리스트의 원소들을 모두 더하는 것은 일상적인 작업이므로 파이썬은 이를 내장 함수 sum으로 제공한다.

>>> t = [1, 2, 3]

>>> sum(t)

6

원소들의 시퀀스를 값 하나로 결합하는 이런 종류의 작업을 리듀스(reduce, 축약하다)라고 한다.

리스트 하나를 순회하면서 다른 리스트를 만들고 싶을 때가 있을 것이다. 예를 들어 다음 함수는 문자열로 된 리스트를 받아서 대문자로 시작하는 문자열을 담은 새로운 리스트를 반환한다.

def capitalize_all(t):

res = []

for s in t:

res.append(s.capitalize())

return res

res는 빈 리스트로 초기화된다. 즉, 루프를 돌면서 다음 원소를 뒤에 추가한다. 따라서 res도 또 하나의 누산기이다.

capitalize_all 같은 작업은 (map)이라고 부르는데, 시퀀스에 있는 원소 각각에 대해 함수(여기서는 capitalize 함수)를 맵(연결)하기 때문이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.