본문으로 건너뛰기

Python sum()으로 리스트, 튜플 합 계산

Python의 sum() 함수는 사용하여 리스트, 튜플 등, Iterable 객체가 갖고 있는 모든 요소의 합계를 계산하고 그 결과를 리턴합니다.

1. sum(iterable)

sum()은 인자로 iterable 객체를 받으며, iterable의 모든 숫자를 더한 결과를 리턴합니다.

리스트, 튜플 모두 iterable이라서 sum()으로 모든 요소들의 합계를 구할 수 있습니다.

list = [10, 22.3, 19.5, 2, 9, 3]
sum_list = sum(list)
print(sum_list)

tuple = (10, 22.3, 19.5, 2, 9, 3)
sum_tuple = sum(tuple)
print(sum_tuple)

Output:

65.8
65.8

딕셔너리의 경우, 딕셔너리의 keys나 values는 iterable이기 때문에 sum()으로 합을 계산할 수 있습니다.

dict = {'a': 1, 'b': 2, 'c': 3}
sum_dict = sum(dict.values())
print(sum_dict)

dict = {1: 'a', 2: 'b', 3: 'c'}
sum_dict = sum(dict.keys())
print(sum_dict)

Output:

6
6

2. sum(iterable, start)

sum()에 인자로 iterable과 함께 start를 전달하면, start와 요소들의 합을 더한 값을 리턴합니다.

즉, 0부터 요소들의 합계를 더하는 것이 아니라, 초기 값 start에 요소들의 합을 더합니다. start 요소를 입력하지 않으면 디폴트 값 0으로 설정됩니다.

list = [10, 22.3, 19.5, 2, 9, 3]
sum_list = sum(list, 1000)
print(sum_list)

tuple = (10, 22.3, 19.5, 2, 9, 3)
sum_tuple = sum(tuple, 2000)
print(sum_tuple)

Output:

1065.8
2065.8

3. 숫자가 아닌 요소를 더할 때 발생하는 에러

리스트나 튜플에 숫자가 아닌 요소가 있을 때, sum()으로 합계를 계산하면 아래와 같은 에러가 발생합니다.

list = [10, 22.3, 19.5, 'a', 9, 3]
sum_list = sum(list, 1000)
print(sum_list)

Output:

/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
Traceback (most recent call last):
File "/home/mjs/IdeaProjects/python-ex/ex1.py", line 2, in <module>
sum_list = sum(list, 1000)
TypeError: unsupported operand type(s) for +: 'float' and 'str'