दोनों Counter
और defaultdict(int)
ठीक यहाँ काम कर सकते हैं, लेकिन उनके बीच में कुछ अंतर हैं:
Counter
आपरेशन आप एक multiset पर कर सकते हैं का सबसे समर्थन करता है। इसलिए, यदि आप उन ऑपरेशन का उपयोग करना चाहते हैं तो काउंटर के लिए जाएं। जब आप कुंजी लापता के लिए क्वेरी
Counter
dict के लिए नई चाबी नहीं जोड़ा जाएगा। तो, अगर आपके प्रश्नों चाबियाँ कि dict में मौजूद नहीं हो सकता है शामिल हैं तो बेहतर Counter
का उपयोग करें।
उदाहरण:
>>> c = Counter()
>>> d = defaultdict(int)
>>> c[0], d[1]
(0, 0)
>>> c
Counter()
>>> d
defaultdict(<type 'int'>, {1: 0})
उदाहरण:
Counter
भी एक विधि most_common
कहा जाता है कि आप उनकी गिनती द्वारा आइटम सॉर्ट करने के लिए अनुमति देता है। defaultdict
में एक ही बात के लिए आप sorted
का उपयोग करना होगा।
उदाहरण:
>>> c = Counter('aaaaaaaaabbbbbbbcc')
>>> c.most_common()
[('a', 9), ('b', 7), ('c', 2)]
>>> c.most_common(2) #return 2 most common items and their counts
[('a', 9), ('b', 7)]
Counter
भी आप काउंटर वस्तु से तत्वों की सूची बनाने के लिए अनुमति देता है।
उदाहरण:
>>> c = Counter({'a':5, 'b':3})
>>> list(c.elements())
['a', 'a', 'a', 'a', 'a', 'b', 'b', 'b']
तो, क्या आप जिसके परिणामस्वरूप dict साथ क्या करना चाहते हैं पर निर्भर करता आप Counter
और defaultdict(int)
के बीच चयन कर सकते हैं।
स्रोत
2013-11-09 21:14:03
क्या दोनों काम करते हैं? फिर एक सिक्का फ्लिप करें। ऐसा कहा जाता है, ऐसा लगता है कि 'संग्रह। काउंटर 'दोहराने वाले तत्वों के साथ एक सूची के लिए है। – millimoose
दोनों संस्करणों को कोड करें, और देखें कि आप किसके लिए अधिक पसंद करते हैं। – NPE