[python] 사전의 모든 값을 합산하는 방법은 무엇입니까?

키가 정수와 매핑되는 사전이 있다고 가정 해 보겠습니다.

d = {'key1': 1,'key2': 14,'key3': 47}

의 값의 합을 반환하는 구문 최소한의 방법이 d– 즉 62이 경우는?



답변

예상대로 :

sum(d.values())


답변

파이썬 2에서는 itervalues()사전의 키 반복자를 반환하는 사전 메소드 를 사용하여 모든 값을 임시로 복사하지 않아도됩니다.

sum(d.itervalues())

파이썬 3에서는 d.values()그 메소드가 변경되어 itervalues()더 이상 필요하지 않기 때문에 제거 되었기 때문에 사용할 수 있습니다 .

사전의 키 값을 항상 반복하는 버전 독립적 인 코드를보다 쉽게 ​​작성하려면 유틸리티 기능이 도움이 될 수 있습니다.

import sys

def itervalues(d):
    return iter(getattr(d, ('itervalues', 'values')[sys.version_info[0]>2])())

sum(itervalues(d))

이것은 본질적으로 Benjamin Peterson의 six모듈이하는 일입니다.


답변

물론입니다. 사전 값을 합산하는 방법은 다음과 같습니다.

>>> d = {'key1':1,'key2':14,'key3':47}
>>> sum(d.values())
62


답변

d = {'key1': 1,'key2': 14,'key3': 47}
sum1 = sum(d[item] for item in d)
print(sum1)

당신은 for 루프를 사용하여 그것을 할 수 있습니다


답변

나는 sum(d.values())합계를 얻는 가장 효율적인 방법 이라고 생각 합니다.

reduce 함수를 사용하여 람다 식과 함께 합계를 계산할 수도 있습니다.

reduce(lambda x,y:x+y,d.values())


답변

sum (d.values ​​())- “d”-> 사전 변수


답변

phihag의 답변 (및 유사한 답변)은 python3에서 작동하지 않습니다.

파이썬 3의 경우 :

d = {'key1': 1,'key2': 14,'key3': 47}
sum(list(d.values()))

최신 정보! 작동하지 않는다는 불만이 있습니다! 터미널에서 스크린 샷을 첨부하면됩니다. 버전 등에서 일부 불일치가있을 수 있습니다.

여기에 이미지 설명을 입력하십시오