2015-09-10 11 views
5

में काउंटर के सभी मानों को समेटें मेरे पास collections मॉड्यूल से एक काउंटर है। सभी गणनाओं को संक्षेप में करने का सबसे अच्छा तरीका क्या है?पायथन

उदाहरण के लिए, मेरे पास है:

my_counter = Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1}) 

और मूल्य 7 लौटे प्राप्त करना चाहते हैं। जहां तक ​​मैं कह सकता हूं, फ़ंक्शन sum एक साथ कई काउंटर जोड़ने के लिए है।

+0

अगर आप था काउंटर का स्रोत (जैसे 'my_counter = काउंटर (स्रोत)'), आप केवल 'लेन (स्रोत) ' – acushner

उत्तर

10

कुछ इस तरह,

sum(my_counter.itervalues()) 

इस तरह से आप किसी भी मध्यवर्ती डाटा संरचनाओं का निर्माण नहीं करतीं करेंगे सिर्फ योग lazily का मूल्यांकन मिलता है।

0
c = Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1}) 
len(list(c.elements())) 
2
>>> from collections import Counter 
>>> sum(Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1}).values()) 
7 

काउंटर के साथ काम करने के लिए आम पैटर्न वस्तुओं: राशि (c.values ​​())
# सब मायने रखता है

स्रोत के कुल: https://docs.python.org/2/library/collections.html

+0

पाइथन 3.6.1 में सही ढंग से काम कर सकते हैं! –