파이썬에는 유용한 빌트인 함수들이 많이 있다. 그 중에 가장 쓰임새가 높은 함수 중 하나인 sum() 함수의 사용법에 대해 정리해보고, 예제를 살펴보겠다.
sum() 함수
sum() 함수는 Iterable 자료형인 리스트, 튜플, 딕셔너리를 인자로 받아 엘리먼트들의 값을 모두 더해준다. 엘리먼트에 대한 더하기 연산을 진행하기 때문에 숫자가 아닌 다른 타입의 엘리먼트를 가지고 있는 경우라면 TypeError가 발생한다.
sum(list)
리스트를 인자로 받는 sum() 함수는 리스트의 모든 값을 더해준다.
list = [1, 2, 3, 4, 5]
sum_list = sum(list)
print(sum_list)
# 15
sum(list, start)
sum() 함수가 리스트와 함께 숫자를 입력받을 수도 있다. 이 경우 start로 입력받은 숫자에 리스트의 값들을 더해서 리턴해주게 된다.
list = [1, 2, 3, 4, 5]
sum_list = sum(list, 100)
print(sum_list)
# 115
sum(tuple)
튜플을 sum() 함수의 입력으로 주면 튜플을 구성하고 있는 값들을 모두 더해준다.
tuple = (1, 3, 5, 7, 9)
sum_tuple = sum(tuple)
print(sum_tuple)
# 25
sum(dict)
딕셔너리도 sum() 함수와 함께 사용할 수 있다.
dict = {'a': 10, 'b': 20, 'c':30}
sum_dict = sum(dict.values())
print(sum_dict)
# 60
TypeError
sum() 함수는 리스트나 튜플, 딕셔너리에 있는 엘리먼트들의 값을 모두 더해준다고 했다. 만약 더하기 연산을 할 수 없는 타입이라면? TypeError가 발생한다.
예를 들어 숫자들 사이에 문자가 섞여 있는 경우를 살펴보자.
list = [1, 2, 3, 'x', 5]
sum_list = sum(list)
print(sum_list)
# Traceback (most recent call last):
# File "./test.py", line 2, in <module>
# sum_list = sum(list)
# TypeError: unsupported operand type(s) for +: 'int' and 'str'
더할 수 없는 타입의 데이터인 'str' 타입의 데이터를 만났고, 숫자와 문자 사이의 sum()은 정의되지 않았기 때문에 TypeError가 발생한다.
댓글