파이썬

[파이썬] 누적 결과를 반환하는 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
"""

 

반응형