Python Μετρητής σε Συλλογές με Παράδειγμα
Τι είναι Python Μετρητής;
Python Ο μετρητής είναι ένα δοχείο που θα συγκρατεί την καταμέτρηση καθενός από τα στοιχεία που υπάρχουν στο δοχείο. Ο μετρητής είναι μια υποκατηγορία που διατίθεται εντός της κλάσης λεξικού.
Ο μετρητής είναι μια υποκατηγορία που διατίθεται εντός της κλάσης του λεξικού. Χρησιμοποιώντας το Python Εργαλείο μετρητή, μπορείτε να μετρήσετε τα ζεύγη κλειδιού-τιμής σε ένα αντικείμενο, που ονομάζεται επίσης αντικείμενο πίνακα κατακερματισμού.
Γιατί να χρησιμοποιήσετε Python Μετρητής;
Εδώ είναι οι κύριοι λόγοι χρήσης Python 3 Μετρητής:
- Ο Μετρητής διατηρεί τα δεδομένα σε μια μη ταξινομημένη συλλογή, ακριβώς όπως τα αντικείμενα με δυνατότητα κατακερματισμού. Τα στοιχεία εδώ αντιπροσωπεύουν τα κλειδιά και την καταμέτρηση ως τιμές.
- Σας επιτρέπει να μετράτε τα στοιχεία σε μια επαναληπτική λίστα.
- Αριθμητικές πράξεις όπως πρόσθεση, αφαίρεση, τομή και ένωση μπορούν εύκολα να εκτελεστούν σε έναν μετρητή.
- Ένας μετρητής μπορεί επίσης να μετρήσει στοιχεία από έναν άλλο μετρητή
Εισαγωγή στην 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.
from collections import Counter list1 = ['x','y','z','x','x','x','y', 'z'] print(Counter(list1))
Παραγωγή:
Counter({'x': 4, 'y': 2, 'z': 2})
Πάγκος με κορδόνι
In Python, τα πάντα είναι αντικείμενο και η συμβολοσειρά είναι επίσης αντικείμενο. Python κορδόνι μπορεί να δημιουργηθεί απλώς κλείνοντας χαρακτήρες στο διπλό εισαγωγικό. Python δεν υποστηρίζει τύπο χαρακτήρα. Αυτές αντιμετωπίζονται ως χορδές μήκους 1, θεωρούνται επίσης ως υποσυμβολοσειρά.
Στο παρακάτω παράδειγμα, μια συμβολοσειρά μεταβιβάζεται στον μετρητή. Επιστρέφει τη μορφή λεξικού, με ζεύγος κλειδιού/τιμής όπου το κλειδί είναι το στοιχείο και η τιμή είναι η καταμέτρηση. Θεωρεί επίσης το διάστημα ως στοιχείο και δίνει τον αριθμό των διαστημάτων στη συμβολοσειρά.
Παράδειγμα:
from collections import Counter my_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})
Μετρητής με Λίστα
Μια λίστα είναι ένα επαναλαμβανόμενο αντικείμενο που έχει τα στοιχεία του μέσα σε αγκύλες.
Τα στοιχεία στη λίστα όταν δίνονται στον Μετρητή θα μετατραπούν σε αντικείμενα με δυνατότητα κατακερματισμού όπου τα στοιχεία θα γίνουν κλειδιά και οι τιμές θα είναι το πλήθος των στοιχείων από τη λίστα που δίνεται.
Για παράδειγμα ['x','y','z', 'x', 'x', 'x', 'y', 'z']. Μόλις δώσετε στη λίστα τον Μετρητή, θα σας δώσει την καταμέτρηση κάθε στοιχείου στη λίστα.
from collections import Counter list1 = ['x','y','z','x','x','x','y','z'] print(Counter(list1))
Παραγωγή:
Counter({'x': 4, 'y': 2, 'z': 2})
Μετρητής με λεξικό
Ένα λεξικό έχει στοιχεία ως ζεύγος κλειδιού/τιμής και είναι γραμμένα μέσα σε σγουρές αγκύλες.
Μόλις δοθεί το λεξικό στον Μετρητή, θα μετατραπεί σε αντικείμενα με δυνατότητα κατακερματισμού, όπου τα στοιχεία θα γίνουν κλειδιά και οι τιμές θα είναι ο αριθμός των στοιχείων από το λεξικό που δίνεται.
Για παράδειγμα : {'x': 4, 'y': 2, 'z': 2, 'z': 2}. Η συνάρτηση Counter θα προσπαθήσει να βρει τον αριθμό κάθε κλειδιού στο συγκεκριμένο λεξικό.
from collections import Counter dict1 = {'x': 4, 'y': 2, 'z': 2, 'z': 2} print(Counter(dict1))
Παραγωγή:
Counter({'x': 4, 'y': 2, 'z': 2})
Πάγκος με Tuple
Το Tuple είναι μια συλλογή αντικειμένων που χωρίζονται με κόμμα μέσα σε στρογγυλές αγκύλες. Ο μετρητής θα σας δώσει την καταμέτρηση καθενός από τα στοιχεία της πλειάδας που δίνεται.
Μόλις δοθεί η πλειάδα στον Μετρητή, θα μετατραπεί σε ένα αντικείμενο με δυνατότητα κατακερματισμού όπου τα στοιχεία θα γίνουν κλειδιά και οι τιμές θα είναι το πλήθος των στοιχείων από την πλειάδα που δίνεται.
from collections import Counter tuple1 = ('x','y','z','x','x','x','y','z') print(Counter(tuple1))
Παραγωγή:
Counter({'x': 4, 'y': 2, 'z': 2})
Πρόσβαση, προετοιμασία και ενημέρωση μετρητών
Μετρητής αρχικοποίησης
Ένας μετρητής μπορεί να αρχικοποιηθεί μεταβιβάζοντας τιμή συμβολοσειράς, λίστα, λεξικό ή πλειάδα όπως φαίνεται παρακάτω:
from collections import Counter print(Counter("Welcome to Guru99 Tutorials!")) #using string print(Counter(['x','y','z','x','x','x','y', 'z'])) #using list print(Counter({'x': 4, 'y': 2, 'z': 2})) #using dictionary print(Counter(('x','y','z','x','x','x','y', 'z'))) #using tuple
Μπορείτε επίσης να αρχικοποιήσετε έναν κενό Μετρητή όπως φαίνεται παρακάτω:
from collections import Counter _count = Counter()
Ενημέρωση μετρητή
Μπορείτε να προσθέσετε τιμές στον μετρητή χρησιμοποιώντας τη μέθοδο update().
_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 : 3 G : 1 u : 3 r : 2 u : 3
Διαγραφή στοιχείου από τον μετρητή
Για να διαγράψετε ένα στοιχείο από το Counter, μπορείτε να χρησιμοποιήσετε το del , όπως φαίνεται στο παρακάτω παράδειγμα:
Παράδειγμα:
from collections import Counter dict1 = {'x': 4, 'y': 2, 'z': 2} del dict1["x"] print(Counter(dict1))
Παραγωγή:
Counter({'y': 2, 'z': 2})
Αριθμητική πράξη σε Python μετρητής
Αριθμητική πράξη όπως πρόσθεση, αφαίρεση, τομή και ένωση μπορεί να γίνει σε έναν μετρητή όπως φαίνεται στο παρακάτω παράδειγμα:
Παράδειγμα:
from collections import Counter counter1 = Counter({'x': 4, 'y': 2, 'z': -2}) counter2 = Counter({'x1': -12, 'y': 5, 'z':4 }) #Addition counter3 = counter1 + counter2 # only the values that are positive will be returned. print(counter3) #Subtraction counter4 = 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 output print(counter4) #Intersection counter5 = counter1 & counter2 # it will give all common positive minimum values from counter1 and counter2 print(counter5) #Union counter6 = counter1 | counter2 # it will give positive max values from counter1 and counter2 print(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): Αυτή η μέθοδος θα σας επιστρέψει τα πιο συνηθισμένα στοιχεία από τη λίστα Counter.
- αφαιρώ(): Αυτή η μέθοδος χρησιμοποιείται για την αφαίρεση των στοιχείων από έναν άλλο μετρητή.
- εκσυγχρονίζω(): Αυτή η μέθοδος χρησιμοποιείται για την ενημέρωση των στοιχείων από άλλο μετρητή.
Παράδειγμα: στοιχεία()
from collections import Counter counter1 = Counter({'x': 5, 'y': 2, 'z': -2, 'x1':0}) _elements = counter1.elements() # will give you all elements with positive value and count>0 for a in _elements: print(a)
Παραγωγή:
x x x x x y y
Παράδειγμα: most_common(value)
from collections import Counter counter1 = 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 Counter counter1 = 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 Counter counter1 = 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 Counter counter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0}) counter1['y'] = 20 print(counter1)
Παραγωγή: Μετά την εκτέλεση θα δείτε ότι ο αριθμός y αλλάζει από 12 σε 20
Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2})
Λάβετε και ορίστε το πλήθος των στοιχείων χρησιμοποιώντας το Counter
Για να λάβετε τον αριθμό ενός στοιχείου χρησιμοποιώντας το Counter, μπορείτε να κάνετε τα εξής:
from collections import Counter counter1 = 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 Counter counter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0}) print(counter1['y']) counter1['y'] = 20 counter1['y1'] = 10 print(counter1)
Παραγωγή:
12 Counter({'y': 20, 'y1': 10, 'x': 5, 'x1': 0, 'z': -2})
Περίληψη
- Ο μετρητής είναι ένα δοχείο που θα συγκρατεί την καταμέτρηση καθενός από τα στοιχεία που υπάρχουν στο δοχείο.
- Ο μετρητής είναι μια υποκατηγορία που διατίθεται εντός της κλάσης του λεξικού.
- Χρήση του Python Εργαλείο μετρητή, μπορείτε να μετρήσετε τα ζεύγη κλειδιού-τιμής σε ένα αντικείμενο, που ονομάζεται επίσης αντικείμενο κατακερματισμού.
- Ο Μετρητής διατηρεί τα δεδομένα σε μια μη ταξινομημένη συλλογή, ακριβώς όπως τα αντικείμενα με δυνατότητα κατακερματισμού. Τα στοιχεία εδώ αντιπροσωπεύουν τα κλειδιά και την καταμέτρηση ως τιμές.
- Σας επιτρέπει να μετράτε τα στοιχεία σε μια επαναληπτική λίστα.
- Αριθμητικές πράξεις όπως πρόσθεση, αφαίρεση, τομή και ένωση μπορούν εύκολα να εκτελεστούν σε έναν μετρητή.
- Ένας μετρητής μπορεί επίσης να μετρήσει στοιχεία από έναν άλλο μετρητή.
- Οι σημαντικές μέθοδοι που είναι διαθέσιμες σε έναν μετρητή είναι τα στοιχεία() , most_common(value), subtract() και update().
- Ένας μετρητής μπορεί να χρησιμοποιηθεί σε συμβολοσειρά, λίστα, λεξικό και πλειάδα.