Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में काउंटर्स (collections.Counter)

collections.Counter एक डिक्शनरी सबक्लास है जो हैशेबल ऑब्जेक्ट्स की गिनती करता है। यह मल्टीसेट (बैग) डेटा संरचना का कार्यान्वयन है।

इनिशियलाइज़ेशन

import collections

# 1. सीक्वेंस से
c = collections.Counter(['a', 'b', 'c', 'a', 'b', 'b'])
# Counter({'b': 3, 'a': 2, 'c': 1})

# 2. डिक्शनरी से
c = collections.Counter({'a': 2, 'b': 3, 'c': 1})

# 3. कीवर्ड आर्गुमेंट्स से
c = collections.Counter(a=2, b=3, c=1)

# खाली काउंटर
c = collections.Counter()
c.update('abcddcba')  # सीक्वेंस से अपडेट
c.update({'a': 1, 'd': 5})  # डिक्शनरी से अपडेट

काउंट एक्सेस करना

c = collections.Counter('abcddcba')

for letter in 'abcdef':
    print(f'{letter} : {c[letter]}')
# a:2, b:2, c:2, d:2, e:0, f:0

# अज्ञात कीज़ के लिए 0 लौटाता है (KeyError नहीं)
print(c['z'])  # 0

उपयोगी मेथड्स

elements()

सभी तत्वों पर इटरेटर (काउंट > 0 वाले)।

c = collections.Counter('Python Counters')
print(list(c.elements()))
# ['P', 'y', 't', 't', 'h', 'o', 'o', 'n', 'n', ' ', 'C', 'u', 'e', 'r', 's']

most_common([n])

सबसे आम n तत्व और उनकी गिनती।

text = """Lorem ipsum dolor sit amet..."""
c = collections.Counter()
for word in text.split():
    c.update(word.lower())

for letter, count in c.most_common(5):
    print(f"{letter}: {count}")
# i: 42, e: 38, t: 32, o: 29, u: 29

अरिथमेटिक और सेट ऑपरेशन्स

c1 = collections.Counter(['a', 'b', 'c', 'a', 'b', 'b'])
c2 = collections.Counter('alphabet')

print(c1 + c2)  # जोड़: काउंट्स जुड़ते हैं
print(c1 - c2)  # घटाव: केवल पॉजिटिव काउंट्स रखे जाते हैं
print(c1 & c2)  # इंटरसेक्शन: min(c1[x], c2[x])
print(c1 | c2)  # यूनियन: max(c1[x], c2[x])

आउटपुट

C1: Counter({'b': 3, 'a': 2, 'c': 1})
C2: Counter({'a': 2, 'l': 1, 'p': 1, 'h': 1, 'b': 1, 'e': 1, 't': 1})

Combined counts: Counter({'a': 4, 'b': 4, 'c': 1, 'l': 1, 'p': 1, 'h': 1, 'e': 1, 't': 1})
Subtraction: Counter({'b': 2, 'c': 1})
Intersection: Counter({'a': 2, 'b': 1})
Union: Counter({'b': 3, 'a': 2, 'c': 1, 'l': 1, 'p': 1, 'h': 1, 'e': 1, 't': 1})

व्यावहारिक उपयोग केस

  • फ्रीक्वेंसी एनालिसिस: टेक्स्ट में शब्द/अक्षर गिनती।
  • लॉग एनालिसिस: IP एड्रेसेस, एरर कोड्स की गिनती।
  • इन्वेंटरी मैनेजमेंट: आइटम क्वांटिटी ट्रैकिंग।
  • डेटा साइंस: फीचर काउंटिंग, कॉ-ऑकरेंस मैट्रिक्स।

नोट

  • काउंट्स पॉजिटिव, ज़ीरो, या नेगेटिव हो सकते हैं।
  • ऑपरेशन्स के बाद ≤0 काउंट वाली कीज़ ऑटोमैटिकली हटा दी जाती हैं।
  • Counter डिक्शनरी की तरह व्यवहार करता है - सभी डिक्शनरी मेथड्स उपलब्ध हैं।
  1. पायथन में issuperset() फंक्शन पायथन में issuperset() फंक्शन

    इस लेख में, हम पायथन में issuperset() और विभिन्न क्षेत्रों में इसके कार्यान्वयन के बारे में जानेंगे।यह मेथड बूलियन True वापस करता है यदि सेट B के सभी तत्व सेट A के सभी तत्वों को समाहित करते हैं जिसे तर्क के रूप में पारित किया जाता है और झूठा वापस करता है यदि A के सभी तत्व B में मौजूद नहीं हैं।इसका म

  1. - पायथन में क्वाइन (Quine)

    क्वाइन एक प्रोग्राम है, जो कोई इनपुट नहीं लेता, लेकिन यह आउटपुट उत्पन्न करता है। यह अपना स्वयं का सोर्स कोड दिखाएगा। इसके अतिरिक्त, क्वाइन की कुछ शर्तें हैं। हम प्रोग्राम के अंदर सोर्स कोड फ़ाइल नहीं खोल सकते। उदाहरण कोड a=a=%r;print (a%%a);print (a%a) आउटपुट a=a=%r;print (a%%a);print (a%a) यह क्व

  1. - पायथन ऑब्जेक्ट को सही तरीके से कैसे साफ़ करें?

    क्लीनअप ग्लोबल्स को None पर सेट करके होता है। लोकल्स सत्र के अंत में स्वयं नष्ट हो जाते हैं। पायथन द्वारा कॉल किया गया फ़ंक्शन __del__ ग्लोबल्स को None पर सेट करता है।निम्न कोड पर विचार करें जहां दिए गए क्लास में सभी ऑब्जेक्ट्स का क्लीनअप होता है:उदाहरणclass Counter:\n Count = 0 # इस क्लास के ऑब