Τι είναι ο μετρητής Python;
Ο μετρητής Python είναι ένα κοντέινερ που θα κρατά το πλήθος κάθε στοιχείου που υπάρχει στο δοχείο. Ο μετρητής είναι μια υποκατηγορία διαθέσιμη στην κατηγορία λεξικών.
Ο μετρητής είναι μια υποκατηγορία διαθέσιμη στην κατηγορία λεξικών. Χρησιμοποιώντας το εργαλείο μετρητή Python, μπορείτε να μετρήσετε τα ζεύγη τιμών-κλειδιών σε ένα αντικείμενο, που ονομάζεται επίσης αντικείμενο πίνακα κατακερματισμού.
Γιατί να χρησιμοποιήσετε το μετρητή Python;
Εδώ είναι σημαντικοί λόγοι για τη χρήση του Python 3 Counter:
- Ο Μετρητής κρατά τα δεδομένα σε μια μη ταξινομημένη συλλογή, όπως τα αντικείμενα hashtable. Τα στοιχεία εδώ αντιπροσωπεύουν τα κλειδιά και το πλήθος ως τιμές.
- Σας επιτρέπει να μετράτε τα στοιχεία σε μια επαναλαμβανόμενη λίστα.
- Οι αριθμητικές λειτουργίες όπως η προσθήκη, η αφαίρεση, η τομή και η ένωση μπορούν να εκτελεστούν εύκολα σε έναν μετρητή.
- Ένας μετρητής μπορεί επίσης να μετρήσει στοιχεία από έναν άλλο μετρητή
Σε αυτό το σεμινάριο Python θα μάθετε:
- Τι είναι ο μετρητής Python;
- Γιατί να χρησιμοποιήσετε το μετρητή Python;
- Εισαγωγή στον μετρητή Python
- Μετρητής με χορδή
- Μετρητής με λίστα
- Μετρητής με λεξικό
- Μετρητής με Tuple
- Πρόσβαση, προετοιμασία και ενημέρωση μετρητών
- Διαγραφή στοιχείου από τον μετρητή
- Αριθμητική λειτουργία στο Python Counter
- Διαθέσιμες μέθοδοι στον μετρητή Python
- Επανατοποθέτηση μετρήσεων στο Python
- Λάβετε και ορίστε την καταμέτρηση των στοιχείων χρησιμοποιώντας το μετρητή
Εισαγωγή στον μετρητή Python
Ο μετρητής Python εισάγει μια λίστα, μια πλειάδα, ένα λεξικό, μια συμβολοσειρά, τα οποία είναι όλα αντικείμενα επαναλαμβανόμενα και θα σας δώσει έξοδο που θα έχει τον αριθμό κάθε στοιχείου.
Σύνταξη:
Counter(list)
Σκεφτείτε ότι έχετε μια ακόλουθη λίστα:
list1 = ['x','y','z','x','x','x','y', 'z']
Η λίστα έχει στοιχεία x, y και z. Όταν χρησιμοποιείτε το Counter σε αυτήν τη λίστα, θα μετρά πόσες φορές υπάρχουν x, y και z. Η έξοδος εάν ο μετρητής χρησιμοποιείται στη λίστα1 πρέπει να είναι κάτι σαν:
Counter({'x': 4, 'y': 2, 'z': 2})
Έχουμε λοιπόν τον αριθμό x ως 4, y ως 2 και z ως 2.
Για να χρησιμοποιήσουμε τον Μετρητή πρέπει πρώτα να τον εισαγάγουμε όπως φαίνεται στο παρακάτω παράδειγμα:
from collections import Counter
Εδώ είναι ένα απλό παράδειγμα, που δείχνει τη λειτουργία του Counter module.
from collections import Counterlist1 = ['x','y','z','x','x','x','y', 'z']print(Counter(list1))
Παραγωγή:
Counter({'x': 4, 'y': 2, 'z': 2})
Μετρητής με χορδή
Στην Python, όλα είναι αντικείμενο και η συμβολοσειρά είναι επίσης αντικείμενο. Η συμβολοσειρά Python μπορεί να δημιουργηθεί απλά περικλείοντας χαρακτήρες στο διπλό εισαγωγικό. Η Python δεν υποστηρίζει έναν τύπο χαρακτήρα. Αυτά αντιμετωπίζονται ως χορδές ενός μήκους, επίσης θεωρούνται ως υπόστρωμα.
Στο παρακάτω παράδειγμα, μια συμβολοσειρά μεταβιβάζεται στον μετρητή. Επιστρέφει τη μορφή λεξικού, με ζεύγος κλειδιών / τιμών όπου το κλειδί είναι το στοιχείο και η τιμή είναι το πλήθος. Θεωρεί επίσης το χώρο ως στοιχείο και δίνει τον αριθμό των κενών στη συμβολοσειρά.
Παράδειγμα:
from collections import Countermy_str = "Welcome to Guru99 Tutorials!"print(Counter(my_str))
Παραγωγή:
Counter({'o': 3, ' ': 3, 'u': 3, 'e': 2, 'l': 2, 't': 2, 'r': 2, '9': 2, 'W': 1,'c': 1, 'm': 1, 'G': 1, 'T': 1, 'i': 1, 'a': 1, 's': 1, '!': 1})
Μετρητής με λίστα
Μια λίστα είναι ένα επαναλαμβανόμενο αντικείμενο που έχει τα στοιχεία του μέσα σε αγκύλες.
Τα στοιχεία της λίστας όταν δίνονται στον Μετρητή θα μετατραπούν σε αντικείμενα hashtable όπου τα στοιχεία θα γίνουν κλειδιά και οι τιμές θα είναι το πλήθος των στοιχείων από τη λίστα που δίνεται.
Για παράδειγμα ['x', 'y', 'z', 'x', 'x', 'x', 'y', 'z']. Μόλις δώσετε στη λίστα τον μετρητή, θα σας δώσει τον αριθμό κάθε στοιχείου στη λίστα.
from collections import Counterlist1 = ['x','y','z','x','x','x','y','z']print(Counter(list1))
Παραγωγή:
Counter({'x': 4, 'y': 2, 'z': 2})
Μετρητής με λεξικό
Ένα λεξικό έχει στοιχεία ως ζεύγος κλειδιών / τιμών και είναι γραμμένα μέσα σε αγκύλες.
Μόλις δοθεί το λεξικό στον Μετρητή, θα μετατραπεί σε αντικείμενα hashtable όπου τα στοιχεία θα γίνουν κλειδιά και οι τιμές θα είναι η μέτρηση των στοιχείων από το δεδομένο λεξικό.
Για παράδειγμα: {'x': 4, 'y': 2, 'z': 2, 'z': 2}. Η συνάρτηση Counter θα προσπαθήσει να βρει το πλήθος κάθε κλειδιού στο δεδομένο λεξικό.
from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2, 'z': 2}print(Counter(dict1))
Παραγωγή:
Counter({'x': 4, 'y': 2, 'z': 2})
Μετρητής με Tuple
Το Tuple είναι μια συλλογή αντικειμένων που διαχωρίζονται με κόμματα μέσα σε αγκύλες. Ο μετρητής θα σας δώσει την καταμέτρηση καθενός από τα στοιχεία της πλειάδας που δίνεται.
Μόλις δοθεί η πλειάδα στον μετρητή, θα μετατραπεί σε ένα hashtable αντικείμενο όπου τα στοιχεία θα γίνουν κλειδιά και οι τιμές θα είναι ο αριθμός των στοιχείων από την πλειάδα που δίνεται.
from collections import Countertuple1 = ('x','y','z','x','x','x','y','z')print(Counter(tuple1))
Παραγωγή:
Counter({'x': 4, 'y': 2, 'z': 2})
Πρόσβαση, προετοιμασία και ενημέρωση μετρητών
Αρχικοποίηση μετρητή
Ένας μετρητής μπορεί να αρχικοποιηθεί περνώντας τιμή συμβολοσειράς, λίστα, λεξικό ή πλειάδα όπως φαίνεται παρακάτω:
from collections import Counterprint(Counter("Welcome to Guru99 Tutorials!")) #using stringprint(Counter(['x','y','z','x','x','x','y', 'z'])) #using listprint(Counter({'x': 4, 'y': 2, 'z': 2})) #using dictionaryprint(Counter(('x','y','z','x','x','x','y', 'z'))) #using tuple
Μπορείτε επίσης να προετοιμάσετε έναν κενό μετρητή όπως φαίνεται παρακάτω:
from collections import Counter_count = Counter()
Ενημέρωση μετρητή
Μπορείτε να προσθέσετε τιμές στον μετρητή χρησιμοποιώντας τη μέθοδο ενημέρωσης ().
_count.update('Welcome to Guru99 Tutorials!')
Ο τελικός κωδικός είναι:
from collections import Counter_count = Counter()_count.update('Welcome to Guru99 Tutorials!')print(_count)
Η έξοδος είναι:
Counter({'o': 3, ' ': 3, 'u': 3, 'e': 2, 'l': 2, 't': 2, 'r': 2, '9': 2, 'W': 1,'c': 1, 'm': 1, 'G': 1, 'T': 1, 'i': 1, 'a': 1, 's': 1, '!': 1})
Πρόσβαση στο μετρητή
Για να λάβετε τις τιμές από τον μετρητή, μπορείτε να κάνετε τα εξής:
from collections import Counter_count = Counter()_count.update('Welcome to Guru99 Tutorials!')print('%s : %d' % ('u', _count['u']))print('\n')for char in 'Guru':print('%s : %d' % (char, _count[char]))
Παραγωγή:
u : 3G : 1u : 3r : 2u : 3
Διαγραφή στοιχείου από τον μετρητή
Για να διαγράψετε ένα στοιχείο από το Counter μπορείτε να χρησιμοποιήσετε το del, όπως φαίνεται στο παρακάτω παράδειγμα:
Παράδειγμα:
from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2}del dict1["x"]print(Counter(dict1))
Παραγωγή:
Counter({'y': 2, 'z': 2})
Αριθμητική λειτουργία στο Python Counter
Η αριθμητική λειτουργία όπως η προσθήκη, η αφαίρεση, η τομή και η ένωση μπορούν να γίνουν σε έναν μετρητή όπως φαίνεται στο παρακάτω παράδειγμα:
Παράδειγμα:
from collections import Countercounter1 = Counter({'x': 4, 'y': 2, 'z': -2})counter2 = Counter({'x1': -12, 'y': 5, 'z':4 })#Additioncounter3 = counter1 + counter2 # only the values that are positive will be returned.print(counter3)#Subtractioncounter4 = counter1 - counter2 # all -ve numbers are excluded.For example z will be z = -2-4=-6, since it is -ve value it is not shown in the outputprint(counter4)#Intersectioncounter5 = counter1 & counter2 # it will give all common positive minimum values from counter1 and counter2print(counter5)#Unioncounter6 = counter1 | counter2 # it will give positive max values from counter1 and counter2print(counter6)
Παραγωγή:
Counter({'y': 7, 'x': 4, 'z': 2})Counter({'x1': 12, 'x': 4})Counter({'y': 2})Counter({'y': 5, 'x': 4, 'z': 4})
Διαθέσιμες μέθοδοι στον μετρητή Python
Υπάρχουν μερικές σημαντικές μέθοδοι διαθέσιμες με το Counter, εδώ είναι η λίστα των ίδιων:
- στοιχεία () : Αυτή η μέθοδος θα σας επιστρέψει όλα τα στοιχεία με μέτρηση> 0. Δεν θα επιστραφούν στοιχεία με αριθμό 0 ή -1.
- most_common (value): Αυτή η μέθοδος θα σας επιστρέψει τα πιο κοινά στοιχεία από τη λίστα μετρητών.
- αφαίρεση (): Αυτή η μέθοδος χρησιμοποιείται για την αφαίρεση των στοιχείων από άλλο μετρητή.
- ενημέρωση (): Αυτή η μέθοδος χρησιμοποιείται για την ενημέρωση των στοιχείων από άλλο μετρητή.
Παράδειγμα: στοιχεία ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 2, 'z': -2, 'x1':0})_elements = counter1.elements() # will give you all elements with positive value and count>0for a in _elements:print(a)
Παραγωγή:
xxxxxyy
Παράδειγμα: most_common (τιμή)
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})common_element = counter1.most_common(2) # The dictionary will be sorted as per the most common element first followed by next.print(common_element)common_element1 = counter1.most_common() # if the value is not given to most_common , it will sort the dictionary and give the most common elements from the start.The last element will be the least common element.print(common_element1)
Παραγωγή:
[('y', 12), ('x', 5)][('y', 12), ('x', 5), ('x1', 0), ('z', -2)]
Παράδειγμα: αφαίρεση ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.subtract(counter2)print(counter1)
Παραγωγή:
Counter({'y': 7, 'x': 3, 'x1': 0, 'z': -2})
Παράδειγμα: ενημέρωση ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.update(counter2)print(counter1)
Παραγωγή:
Counter({'y': 17, 'x': 7, 'x1': 0, 'z': -2})
Επανατοποθέτηση μετρήσεων στο Python
Μπορείτε να εκχωρήσετε ξανά μετρήσεις μετρητή όπως φαίνεται παρακάτω:
Θεωρήστε ότι έχετε ένα λεξικό ως: {'x': 5, 'y': 12, 'z': -2, 'x1': 0}
Μπορείτε να αλλάξετε το πλήθος του στοιχείου όπως φαίνεται παρακάτω:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter1['y'] = 20print(counter1)
Έξοδος: Μετά την εκτέλεση θα δείτε ότι το πλήθος y αλλάζει από 12 σε 20
Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2})
Λάβετε και ορίστε την καταμέτρηση των στοιχείων χρησιμοποιώντας το μετρητή
Για να λάβετε το πλήθος ενός στοιχείου χρησιμοποιώντας το Counter μπορείτε να κάνετε τα εξής:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})print(counter1['y']) # this will give you the count of element 'y'
Παραγωγή:
12
Για να ορίσετε το πλήθος του στοιχείου μπορείτε να κάνετε τα εξής:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})print(counter1['y'])counter1['y'] = 20counter1['y1'] = 10print(counter1)
Παραγωγή:
12Counter({'y': 20, 'y1': 10, 'x': 5, 'x1': 0, 'z': -2})
Περίληψη:
- Ο μετρητής είναι ένα δοχείο που θα συγκρατεί το πλήθος κάθε στοιχείου που υπάρχει στο δοχείο.
- Ο μετρητής είναι μια υποκατηγορία διαθέσιμη στην κατηγορία λεξικών.
- Χρησιμοποιώντας το εργαλείο μετρητή Python, μπορείτε να μετρήσετε τα ζεύγη τιμών-κλειδιών σε ένα αντικείμενο, που ονομάζεται επίσης αντικείμενο hashtable.
- Ο Μετρητής κρατά τα δεδομένα σε μια μη ταξινομημένη συλλογή, όπως τα αντικείμενα hashtable. Τα στοιχεία εδώ αντιπροσωπεύουν τα κλειδιά και το πλήθος ως τιμές.
- Σας επιτρέπει να μετράτε τα στοιχεία σε μια επαναλαμβανόμενη λίστα.
- Οι αριθμητικές λειτουργίες όπως η προσθήκη, η αφαίρεση, η τομή και η ένωση μπορούν να εκτελεστούν εύκολα σε έναν μετρητή.
- Ένας μετρητής μπορεί επίσης να μετρήσει στοιχεία από έναν άλλο μετρητή.
- Οι σημαντικές διαθέσιμες μέθοδοι σε έναν μετρητή είναι στοιχεία (), most_common (τιμή), αφαίρεση () και ενημέρωση ().
- Ένας μετρητής μπορεί να χρησιμοποιηθεί σε μια συμβολοσειρά, λίστα, λεξικό και πλειάδα.