Python - sum()으로 딕셔너리 합계 계산

sum() 함수로 딕셔너리의 모든 요소의 합계를 계산하는 방법을 소개합니다.

1. sum()으로 value들의 합계 계산

dict.values()로 value 값만 리스트로 가져와서 sum() 함수에 전달하면, 숫자들의 합이 계산되어 리턴됩니다.

my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

total = sum(my_dict.values())
print(total)

Output:

15

2. sum()으로 key들의 합계 계산

key가 숫자이고, 모든 key들의 합계를 계산하고 싶을 때는 dict.keys()로 key들의 리스트를 sum()에 전달합니다.

my_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}

total = sum(my_dict.keys())
print(total)

Output:

15

3. sum(iterable, start)으로 기본 값 입력

sum(iterable, start)iterable의 합계에 start 값을 더한 값을 리턴합니다.

즉, 아래 예제에서 sum()은 value들의 합계인 15에 1000을 더한 1015를 리턴합니다.

my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

total = sum(my_dict.values(), 1000)
print(total)

Output:

1015

4. TypeError

다음과 같이 values에 숫자가 아닌 문자가 있을 때, sum()은 TypeError를 발생시킵니다.

my_dict = {'a': 1, 'b': 2, 'c': 'A', 'd': 4, 'e': 5}

total = sum(my_dict.values())
print(total)

Output:

Traceback (most recent call last):
  File "/home/mjs/IdeaProjects/python-ex/ex1.py", line 3, in <module>
    total = sum(my_dict.values())
TypeError: unsupported operand type(s) for +: 'int' and 'str'

아래와 같이 try-except 구문으로 예외처리를 할 수 있습니다.

my_dict = {'a': 1, 'b': 2, 'c': 'A', 'd': 4, 'e': 5}
total = 0
try:
    total = sum(my_dict.values())
except TypeError:
    total = 100

print(total)

Output:

100
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha