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

पायथन में काउंटर?

एक काउंटर एक कंटेनर है जो ट्रैक करता है कि कितनी बार समकक्ष मान जोड़े गए हैं। पायथन काउंटर क्लास संग्रह मॉड्यूल का एक हिस्सा है और शब्दकोश का एक उपवर्ग है।

पायथन काउंटर

हम काउंटर को उन वस्तुओं के एक अनियंत्रित संग्रह के रूप में सोच सकते हैं जहां वस्तुओं को शब्दकोश कुंजी के रूप में संग्रहीत किया जाता है और उनकी गणना शब्दकोश मान के रूप में होती है।

काउंटर आइटम की गिनती धनात्मक, शून्य या ऋणात्मक पूर्णांक हो सकती है। हालांकि इसकी चाबियों और मूल्यों पर कोई प्रतिबंध नहीं है लेकिन आम तौर पर मूल्यों का उद्देश्य संख्या होना है लेकिन हम अन्य ऑब्जेक्ट प्रकारों को भी स्टोर कर सकते हैं।

आरंभ करना

काउंटर आरंभीकरण के तीन रूपों का समर्थन करता है। इसके कंस्ट्रक्टर को आइटम्स के एक क्रम के साथ बुलाया जा सकता है, एक डिक्शनरी जिसमें कुंजियाँ और काउंट्स होते हैं, या कीवर्ड तर्कों का उपयोग करके स्ट्रिंग नामों को काउंट करने के लिए मैप किया जा सकता है।

import collections
print (collections.Counter(['a', 'b', 'c', 'a', 'b', 'b']))
print (collections.Counter({'a': 2, 'b': 3, 'c':1}))
print(collections.Counter(a=2, b=3, c=1))

इनिशियलाइज़ेशन के तीनों रूपों से आउटपुट समान हैं -

Counter({'b': 3, 'a': 2, 'c': 1})
Counter({'b': 3, 'a': 2, 'c': 1})
Counter({'b': 3, 'a': 2, 'c': 1})

एक खाली काउंटर बनाने के लिए, काउंटर को बिना किसी तर्क के पास करें और इसे अपडेट विधि के माध्यम से पॉप्युलेट करें।

import collections
c = collections.Counter()
print('Initial: ', c)
c.update('abcddcba')
print('Sequence: ', c)
c.update({'a': 1, 'd':5})
print('Dict: ', c)

आउटपुट

Initial: Counter()
Sequence: Counter({'a': 2, 'b': 2, 'c': 2, 'd': 2})
Dict: Counter({'d': 7, 'a': 3, 'b': 2, 'c': 2})

पहुँचने की संख्या

एक बार काउंटर भर जाने के बाद, यह मान शब्दकोश एपीआई के माध्यम से प्राप्त किया जा सकता है।

import collections
c = collections.Counter('abcddcba')
for letter in 'abcdef':
   print('%s : %d' %(letter, c[letter]))

आउटपुट

a : 2
b : 2
c : 2
d : 2
e : 0
f : 0

काउंटर अज्ञात वस्तुओं के लिए KeyError नहीं उठाता है (जैसे आइटम ई एंड एफ हमने उपरोक्त कार्यक्रम में उल्लेख किया है)। यदि इनपुट में कोई मान नहीं देखा गया है, तो इसकी गिनती 0 है (जैसे कि उपरोक्त आउटपुट में अज्ञात आइटम e &f के लिए)।

तत्व () विधि एक पुनरावर्तक लौटाती है जो काउंटर को ज्ञात सभी वस्तुओं का उत्पादन करती है।

import collections
c = collections.Counter('Python Counters')
c['z'] = 0
print(c)
print(list(c.elements()))

आउटपुट

Counter({'t': 2, 'o': 2, 'n': 2, 'P': 1, 'y': 1, 'h': 1, ' ': 1, 'C': 1, 'u': 1, 'e': 1, 'r': 1, 's': 1, 'z': 0})
['P', 'y', 't', 't', 'h', 'o', 'o', 'n', 'n', ' ', 'C', 'u', 'e', 'r', 's']

तत्वों का क्रम निश्चित नहीं है, और शून्य से कम गिनती वाले आइटम शामिल नहीं हैं।

n इनपुट और उनकी संबंधित गणनाओं में से सामान्य इनपुट उत्पन्न करने के लिए हम most_common() फ़ंक्शन का उपयोग करते हैं।

import collections
c = collections.Counter()
texts = '''Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa
qui officia deserunt mollit anim id est laborum.'''
for word in texts:
c.update(word.rstrip().lower())
print("Five most common letters in the texts: ")
for letter, count in c.most_common(5):
print("%s: %7d" %(letter, count))

आउटपुट

Five most common letters in the texts:
i: 42
e: 38
t: 32
o: 29
u: 29

ऊपर दिए गए उदाहरण में टेक्स्ट में दिखने वाले अक्षरों (या आप किसी फ़ाइल पर विचार कर सकते हैं) को फ़्रीक्वेंसी डिस्ट्रीब्यूशन बनाने के लिए गिनता है, फिर पाँच सबसे आम प्रिंट करता है। मोस्ट_कॉमन () के तर्क को छोड़कर, आवृत्ति के क्रम में सभी वस्तुओं की एक सूची तैयार करता है।

अंकगणित

काउंटर इंस्टेंस अंकगणित का समर्थन करते हैं और परिणामों को एकत्रित करने के लिए संचालन सेट करते हैं।

import collections
c1 = collections.Counter(['a', 'b', 'c', 'a' ,'b', 'b'])
c2 = collections.Counter('alphabet')
print('C1: ', c1)
print('C2: ', c2)
print ('\nCombined counts: ')
print(c1 + c2)
print('\nSubtraction: ')
print(c1 - c2)
print('\nIntersection (taking positive minimums): ')
print(c1 & c2)
print('\nUnion (taking maximums): ')
print(c1 | c2)

आउटपुट

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 (taking positive minimums):
Counter({'a': 2, 'b': 1})
Union (taking maximums):
Counter({'b': 3, 'a': 2, 'c': 1, 'l': 1, 'p': 1, 'h': 1, 'e': 1, 't': 1})

हर बार एक ऑपरेशन के माध्यम से एक नया काउंटर तैयार किया जाता है, शून्य या नकारात्मक गणना वाले किसी भी आइटम को छोड़ दिया जाता है।


  1. issuperset () पायथन में

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

  1. पायथन में क्विन

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

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

    वैश्विकों को कोई नहीं पर सेट करने से उनकी सफाई होती है। स्थानीय लोग सत्र के अंत में स्वयं को नष्ट कर देते हैं। फ़ंक्शन __del__ जिसे पायथन द्वारा बुलाया जाता है, ग्लोबल्स को कोई नहीं पर सेट करता है। निम्न कोड पर विचार करें जहां दिए गए वर्ग में सभी वस्तुओं की सफाई है - उदाहरण class Counter:   &nb