키가 정수와 매핑되는 사전이 있다고 가정 해 보겠습니다.
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())