Što je Python Counter?
Python Counter je spremnik koji će sadržavati brojanje svakog od elemenata prisutnih u spremniku. Brojač je podrazred dostupan u klasi rječnika.
Brojač je potklasa dostupna unutar klase rječnika. Koristeći alat Python Counter možete brojati parove ključ / vrijednost u objektu, koji se naziva i objektom hash table.
Zašto koristiti Python Counter?
Evo glavnih razloga za upotrebu Python 3 Countera:
- Brojač drži podatke u neuređenoj zbirci, baš kao i hashtable objekti. Elementi ovdje predstavljaju ključeve i broje se kao vrijednosti.
- Omogućuje vam brojanje predmeta na popisu koji se može ponoviti.
- Aritmetičke operacije poput zbrajanja, oduzimanja, presijecanja i spajanja mogu se jednostavno izvesti na brojaču.
- Brojač također može brojati elemente iz drugog brojača
U ovom vodiču za Python naučit ćete:
- Što je Python Counter?
- Zašto koristiti Python Counter?
- Uvod u Python Counter
- Brojač sa nizom
- Brojač s popisom
- Brojač s rječnikom
- Brojač s Tupleom
- Pristup, inicijalizacija i ažuriranje brojača
- Brisanje elementa iz brojača
- Aritmetička operacija na Python Counteru
- Metode dostupne na Python Counteru
- Ponovno dodjeljivanje brojeva u Pythonu
- Nabavite i postavite broj elemenata pomoću brojača
Uvod u Python Counter
Python Counter unosi popis, tuple, rječnik, niz, koji su svi iterabilni objekti, i dat će vam izlaz koji će imati broj svakog elementa.
Sintaksa:
Counter(list)
Uzmite u obzir da imate sljedeći popis:
list1 = ['x','y','z','x','x','x','y', 'z']
Popis sadrži elemente x, y i z. Kada na ovom popisu koristite Counter, računat će koliko je puta x, y i z prisutan. Izlaz ako se brojač koristi na listi1 trebao bi biti otprilike:
Counter({'x': 4, 'y': 2, 'z': 2})
Tako imamo broj x kao 4, y kao 2 i z kao 2.
Da bismo koristili Counter, prvo ga moramo uvesti kako je prikazano u donjem primjeru:
from collections import Counter
Evo jednostavnog primjera koji pokazuje rad modula Counter.
from collections import Counterlist1 = ['x','y','z','x','x','x','y', 'z']print(Counter(list1))
Izlaz:
Counter({'x': 4, 'y': 2, 'z': 2})
Brojač sa nizom
U Pythonu je sve objekt, a i niz je objekt. Python niz može se stvoriti jednostavnim zatvaranjem znakova u dvostruke navodnike. Python ne podržava tip znakova. Oni se tretiraju kao nizovi duljine jedan, koji se također smatraju podnizom.
U donjem primjeru niz se prosljeđuje Counteru. Vraća format rječnika s parom ključ / vrijednost gdje je ključ element, a vrijednost brojanje. Također razmatra prostor kao element i daje broj razmaka u nizu.
Primjer:
from collections import Countermy_str = "Welcome to Guru99 Tutorials!"print(Counter(my_str))
Izlaz:
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})
Brojač s popisom
Popis je iterabilni objekt koji ima svoje elemente unutar uglatih zagrada.
Elementi na popisu kada se daju Counteru pretvorit će se u hashtable objekte u kojima će elementi postati ključevi, a vrijednosti će biti brojanje elemenata s popisa.
Na primjer ['x', 'y', 'z', 'x', 'x', 'x', 'y', 'z']. Jednom kada popisu date Brojač, dat će vam broj svakog elementa na popisu.
from collections import Counterlist1 = ['x','y','z','x','x','x','y','z']print(Counter(list1))
Izlaz:
Counter({'x': 4, 'y': 2, 'z': 2})
Brojač s rječnikom
Rječnik ima elemente kao par ključ / vrijednost, a oni su zapisani u kovrčavim zagradama.
Jednom kada se rječnik da Counteru, pretvorit će se u hashtable objekte u kojima će elementi postati ključevi, a vrijednosti će biti brojanje elemenata iz datog rječnika.
Na primjer: {'x': 4, 'y': 2, 'z': 2, 'z': 2}. Funkcija Brojač pokušat će pronaći broj svakog ključa u danom rječniku.
from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2, 'z': 2}print(Counter(dict1))
Izlaz:
Counter({'x': 4, 'y': 2, 'z': 2})
Brojač s Tupleom
Tuple je zbirka predmeta odvojenih zarezima unutar okruglih zagrada. Brojač će vam dati brojanje svakog od elemenata u datom tupleu.
Jednom kada je tuple dat Brojaču, pretvorit će se u hashtable objekt u kojem će elementi postati ključevi, a vrijednosti će biti brojanje elemenata iz danog tuplea.
from collections import Countertuple1 = ('x','y','z','x','x','x','y','z')print(Counter(tuple1))
Izlaz:
Counter({'x': 4, 'y': 2, 'z': 2})
Pristup, inicijalizacija i ažuriranje brojača
Inicijaliziranje brojača
Brojač se može inicijalizirati prosljeđivanjem vrijednosti niza, popisa, rječnika ili tupa kao što je prikazano dolje:
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
Također možete inicijalizirati prazan brojač kao što je prikazano dolje:
from collections import Counter_count = Counter()
Ažuriranje brojača
Vrijednosti možete dodati brojaču pomoću metode update ().
_count.update('Welcome to Guru99 Tutorials!')
Konačni kod je:
from collections import Counter_count = Counter()_count.update('Welcome to Guru99 Tutorials!')print(_count)
Izlaz je:
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})
Pristup brojaču
Da biste vrijednosti dobili iz brojača, možete učiniti sljedeće:
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]))
Izlaz:
u : 3G : 1u : 3r : 2u : 3
Brisanje elementa iz brojača
Da biste izbrisali element iz Brojača, možete koristiti del, kao što je prikazano u primjeru dolje:
Primjer:
from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2}del dict1["x"]print(Counter(dict1))
Izlaz:
Counter({'y': 2, 'z': 2})
Aritmetička operacija na Python Counteru
Aritmetičke operacije poput zbrajanja, oduzimanja, presijecanja i spajanja mogu se izvršiti na brojaču, kao što je prikazano u primjeru u nastavku:
Primjer:
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)
Izlaz:
Counter({'y': 7, 'x': 4, 'z': 2})Counter({'x1': 12, 'x': 4})Counter({'y': 2})Counter({'y': 5, 'x': 4, 'z': 4})
Metode dostupne na Python Counteru
S Counterom su dostupne neke važne metode, evo popisa istih:
- elements () : Ova metoda vratit će vam sve elemente s brojem> 0. Elementi s brojem 0 ili -1 neće se vratiti.
- most_common (value): Ova metoda vratit će vam najčešće elemente s popisa brojača.
- oduzeti (): Ova metoda koristi se za oduzimanje elemenata iz drugog brojača.
- update (): Ova se metoda koristi za ažuriranje elemenata s drugog brojača.
Primjer: elements ()
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)
Izlaz:
xxxxxyy
Primjer: most_common (vrijednost)
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)
Izlaz:
[('y', 12), ('x', 5)][('y', 12), ('x', 5), ('x1', 0), ('z', -2)]
Primjer: oduzeti ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.subtract(counter2)print(counter1)
Izlaz:
Counter({'y': 7, 'x': 3, 'x1': 0, 'z': -2})
Primjer: update ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.update(counter2)print(counter1)
Izlaz:
Counter({'y': 17, 'x': 7, 'x1': 0, 'z': -2})
Ponovno dodjeljivanje brojeva u Pythonu
Možete ponovno dodijeliti brojanje brojača kako je prikazano dolje:
Uzmite u obzir da imate rječnik kao: {'x': 5, 'y': 12, 'z': -2, 'x1': 0}
Možete promijeniti broj elemenata kao što je prikazano dolje:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter1['y'] = 20print(counter1)
Izlaz: Nakon izvršavanja vidjet ćete da se broj y promijenio s 12 na 20
Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2})
Nabavite i postavite broj elemenata pomoću brojača
Da biste dobili broj elemenata pomoću brojača, možete učiniti sljedeće:
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'
Izlaz:
12
Za postavljanje broja elemenata možete učiniti sljedeće:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})print(counter1['y'])counter1['y'] = 20counter1['y1'] = 10print(counter1)
Izlaz:
12Counter({'y': 20, 'y1': 10, 'x': 5, 'x1': 0, 'z': -2})
Sažetak:
- Brojač je spremnik koji će sadržavati brojanje svih elemenata prisutnih u spremniku.
- Brojač je podrazred dostupan u klasi rječnika.
- Koristeći alat Python Counter možete brojati parove ključ / vrijednost u objektu, koji se naziva i hashtable objektom.
- Brojač drži podatke u neuređenoj zbirci, baš kao i hashtable objekti. Elementi ovdje predstavljaju ključeve i broje se kao vrijednosti.
- Omogućuje vam brojanje predmeta na popisu koji se može ponoviti.
- Aritmetičke operacije poput zbrajanja, oduzimanja, presijecanja i spajanja mogu se jednostavno izvesti na brojaču.
- Brojač također može brojati elemente iz drugog brojača.
- Važne metode dostupne na brojaču su elementi (), najčešće_često (vrijednost), oduzimanje () i ažuriranje ().
- Brojač se može koristiti na nizu, popisu, rječniku i naboru.