from itertools import accumulate
from itertools import accumulate
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = list(accumulate(a))
print(a) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(b) # [1, 3, 6, 10, 15, 21, 28, 36, 45, 55]
- 속도차이
1번 for문
a = [x+1 for x in range(1000000)]
for i in range(1, len(a)):
a[i] += a[i-1]
2번 accumulate
a = [x+1 for x in range(1000000)]
b = list(accumulate(a))
| 실행 코드 | 값 | 속도 |
| for문 | 10만 | 0.01894974708557129 |
| accumulate | 10만 | 0.004986286163330078 |
| for문 | 1000만 | 1.868004560470581 |
| accumulate | 1000만 | 0.766948938369751 |
-> for문 보다 값이 커질수록 속도면에서 유리
'코딩테스트 > Python 개념' 카테고리의 다른 글
| [Python] 정수 최댓값, 최솟값 초기화: -1e9, 1e9 (0) | 2023.02.15 |
|---|---|
| [Python] 한 줄에 여러값 입력받기 map(int,input().split()) (0) | 2023.02.08 |
| [Python] 출력시 공백 추가 end, sep (0) | 2023.01.28 |
| [Python] 평균, 중앙값 numpy (0) | 2023.01.05 |
| [Python] 리스트에 요소 삽입 (append, insert, extend) (0) | 2022.11.03 |