मान लीजिए कि मेरे पास एक शब्दकोश है जिसमें कुंजियों के पूर्णांक के लिए नक्शा है जैसे:
d = {'key1': 1,'key2': 14,'key3': 47}
वहाँ में मानों का योग वापस जाने के लिए एक वाक्य रचना minimalistic रास्ता नहीं है d
यानी 62
इस मामले में?
मान लीजिए कि मेरे पास एक शब्दकोश है जिसमें कुंजियों के पूर्णांक के लिए नक्शा है जैसे:
d = {'key1': 1,'key2': 14,'key3': 47}
वहाँ में मानों का योग वापस जाने के लिए एक वाक्य रचना minimalistic रास्ता नहीं है d
यानी 62
इस मामले में?
जवाबों:
जैसा कि आप उम्मीद करेंगे:
sum(d.values())
Python 2.7.12
यह भी अच्छी तरह से साथ काम करता हैsum(d.values())
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))
यह अनिवार्य रूप से बेंजामिन पीटरसन का six
मॉड्यूल क्या करता है।
d = {'key1': 1,'key2': 14,'key3': 47}
sum1 = sum(d[item] for item in d)
print(sum1)
आप इसे लूप के लिए उपयोग कर सकते हैं
मुझे लगता sum(d.values())
है कि राशि प्राप्त करने का सबसे कारगर तरीका है।
आप लम्बडा एक्सप्रेशन के साथ योग की गणना करने के लिए कम फंक्शन की कोशिश कर सकते हैं:
reduce(lambda x,y:x+y,d.values())
योग (d.values ()) - "d" -> आपका शब्दकोश चर
phihag का उत्तर (और इसी तरह के) python3 में काम नहीं करेगा।
अजगर 3 के लिए:
d = {'key1': 1,'key2': 14,'key3': 47}
sum(list(d.values()))
अपडेट करें! शिकायतें हैं कि यह काम नहीं करता है! मैं सिर्फ अपने टर्मिनल से एक स्क्रीनशॉट संलग्न करता हूं। संस्करणों आदि में कुछ बेमेल हो सकता है।
आप इसके लिए 'लूप के लिए' पर विचार कर सकते हैं:
d = {'data': 100, 'data2': 200, 'data3': 500}
total = 0
for i in d.values():
total += i
कुल = 800
sum(d.values())
, चूंकि .values()
रिटर्न ए List
।
आप शब्दकोश में सभी मूल्यों का एक जनरेटर प्राप्त कर सकते हैं, फिर इसे एक सूची में डाल सकते हैं और सभी मूल्यों का योग प्राप्त करने के लिए योग () फ़ंक्शन का उपयोग कर सकते हैं।
उदाहरण:
c={"a":123,"b":4,"d":4,"c":-1001,"x":2002,"y":1001}
sum(list(c.values()))
sum
अपने आप को लागू करेंreduce
-reduce
एक अधिक सामान्य रूप है (उदाहरण के लिएsum
,min
औरmax
सभी के संदर्भ में लिखा जा सकता हैreduce
) और अन्य समस्याओं (जैसेproduct
) को आसानी से हल कर सकते हैं।