Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 딕셔너리의 모든 항목 합계 구하기 – 3가지 방법 완벽 정리


파이썬에서 딕셔너리(dictionary)는 키(key)와 값(value)의 쌍으로 데이터를 저장하는 자료구조입니다. 이 글에서는 딕셔너리에 저장된 모든 값의 합계를 구하는 다양한 방법을 예제 코드와 함께 알아봅니다.

문제 정의 − 하나의 딕셔너리가 주어졌을 때, 딕셔너리에 담긴 모든 값을 더한 합계를 계산하여 출력합니다.

먼저 아래와 같은 딕셔너리를 예로 들어 보겠습니다.

myDict = {'T': 1, 'U': 2, 'T': 3, 'O': 4, 'R': 5}

여기서 키 'T'가 두 번 등장하지만, 딕셔너리는 중복된 키를 허용하지 않기 때문에 나중에 선언된 값인 3만 유지됩니다. 따라서 실제 합계는 3 + 2 + 4 + 5 = 14가 됩니다.

방법 1 − 딕셔너리 직접 순회하기

딕셔너리를 for 문으로 순회하면 키가 하나씩 반환됩니다. 각 키로 값을 조회하면서 누적합을 계산하는 가장 기본적인 방식입니다.

예제

# 합계 함수
def Sum(myDict):
    sum_ = 0
    for i in myDict:
        sum_ = sum_ + myDict[i]
    return sum_

# 실행 코드
myDict = {'T': 1, 'U': 2, 'T': 3, 'O': 4, 'R': 5}
print("딕셔너리 값의 합계 :", Sum(myDict))

출력 결과

딕셔너리 값의 합계 : 14

방법 2 − dict.values() 활용하기

values() 메서드는 딕셔너리의 모든 값을 뷰(view) 객체로 반환합니다. 키를 거치지 않고 곧바로 값만 순회하므로 코드의 의도가 더 명확하게 드러납니다.

예제

# 합계 함수
def Sum(myDict):
    sum_ = 0
    for i in myDict.values():
        sum_ = sum_ + i
    return sum_

# 실행 코드
myDict = {'T': 1, 'U': 2, 'T': 3, 'O': 4, 'R': 5}
print("딕셔너리 값의 합계 :", Sum(myDict))

출력 결과

딕셔너리 값의 합계 : 14

방법 3 − dict.keys() 활용하기

keys() 메서드로 키 목록을 명시적으로 가져온 뒤, 각 키에 대응하는 값을 더하는 방식입니다. 방법 1과 결과는 같지만, 키를 다룬다는 점을 코드상으로 분명히 표현할 수 있습니다.

예제

# 합계 함수
def Sum(myDict):
    sum_ = 0
    for i in myDict.keys():
        sum_ = sum_ + myDict[i]
    return sum_

# 실행 코드
myDict = {'T': 1, 'U': 2, 'T': 3, 'O': 4, 'R': 5}
print("딕셔너리 값의 합계 :", Sum(myDict))

출력 결과

딕셔너리 값의 합계 : 14

보너스 − sum() 내장 함수로 한 줄로 해결하기

파이썬의 내장 함수 sum()을 사용하면 반복문 없이 단 한 줄로 합계를 구할 수 있습니다. 실무에서 가장 널리 쓰이는 방식이기도 합니다.

예제

myDict = {'T': 1, 'U': 2, 'T': 3, 'O': 4, 'R': 5}
print("딕셔너리 값의 합계 :", sum(myDict.values()))

출력 결과

딕셔너리 값의 합계 : 14

마무리

이 글에서는 파이썬 딕셔너리의 모든 값 합계를 구하는 세 가지 방법과, 내장 함수 sum()을 활용한 가장 간결한 방법까지 살펴보았습니다. 가독성과 성능 면에서는 sum(myDict.values())처럼 내장 함수를 조합하는 방식이 가장 권장됩니다.

한 가지 팁을 덧붙이자면, 예제에서 변수 이름을 dict 대신 myDict로 사용한 이유는 dict가 파이썬의 내장 타입 이름이기 때문입니다. 내장 이름을 덮어쓰면(shadowing) 이후 코드에서 예기치 않은 오류가 발생할 수 있으니 주의하는 것이 좋습니다.