728x90

reduce()
def reduce(function, iterable, initializer=None):
it = iter(iterable)
if initializer is None:
value = next(it)
else:
value = initializer
for element in it:
value = function(value, element)
return value
- reduce(function, iterable[, initializer=None])
- reduce(함수, 이터러블, 최기값)
- 위 코드는 reduce 메서드를 나타낸 코드
- lambda 이용시 첫번째 인자가 누적값(직전 실행의 결과값), 두번째 인자가 새로운 값
- 첫번째 인자를 accumulation(acc), 두번째 인자를 cutrrent(cur)로 자주 사용
초기값 유무
from functools import reduce
myList = [1, 2, 3, 4, 5]
def add(x, y):
print(f'{x} + {y}')
return x + y
print(reduce(add, myList))
print()
print(reduce(add, myList, 0))

- 초기값이 없으면 첫번째 인자를 첫 값으로 넣음. 있으면 해당 값으로 첫번째 인자와 연산함
참조
- 파이썬 공식 문서
- 쏠수있어 님의 블로그
반응형
'Languages > Python' 카테고리의 다른 글
| [파이썬 101] List, Set, Dictionary 연산과 메서드의 시간복잡도 (0) | 2022.06.03 |
|---|---|
| [파이썬 라이브러리] Collections 모듈의 deque (데크, 덱, 디큐, 데큐) (0) | 2022.06.03 |
| [파이썬 101] lambda (람다) (0) | 2022.06.03 |
| [파이썬 101] map 함수 (Iterator, Iterable) (0) | 2022.06.03 |
| [파이썬 101] re 모듈 (함수, 플래그, 일치 객체) (0) | 2022.05.30 |