파이썬
[파이썬] 누적 결과를 반환하는 accumulate()
앤테바
2021. 11. 9. 05:35
반응형
accumulate()는 누적 결과를 반환하는 이터레이터를 만든다.
Syntax
itertools.accumulate(iterable[, func]) –> accumulate object
사용 예시1)
accumulate()는 첫번째 인자는 iterable 객체를 받고, 두 번째 인자는 누적 연산을 수행할 함수를 취한다.
두 번째 인자는 default로 operator.add이다.
import itertools
arr = [1, 2, 3, 4, 5]
# 누적 합계
result = itertools.accumulate(arr)
for item in result:
print(item)
"""
output:
1 = 1
3 = 1 + 2
6 = 3 + 3
10 = 6 + 4
15 = 10 + 5
"""
사용 예시2)
누적 연산 함수를 mul(곱셉)을 지정한 코드이다.
import itertools
import operator
arr = [1, 2, 3, 4, 5]
result = itertools.accumulate(arr, operator.mul)
for item in result:
print(item)
"""
output:
1
2
6
24
120
"""
사용 예시3)
새롭게 정의한 누적 연산 함수를 지정한 모습이다.
import itertools
arr = [1, 2, 3, 4, 5]
def test_func(x, y):
return x * y + 3
result = itertools.accumulate(arr, test_func)
for item in result:
print(item)
"""
output:
1
5
18
75
378
"""
사용 예시4)
초기값 지정이 가능하다
import itertools
import operator
arr = [1, 2, 3, 4, 5]
# 초기값을 3으로 지정
result = itertools.accumulate(arr, operator.add, initial=3)
for item in result:
print(item)
"""
output:
3
4
6
9
13
18
"""
반응형