Python Brojač u zbirkama s primjerom
Što je Python Brojač?
Python Brojač je spremnik koji će sadržavati brojanje svakog od elemenata prisutnih u spremniku. Brojač je potklasa dostupna unutar klase rječnika.
Brojač je potklasa dostupna unutar klase rječnika. Korištenje Python Alat za brojanje, možete prebrojati parove ključ-vrijednost u objektu, koji se naziva i objekt hash tablice.
Zašto koristiti Python Brojač?
Ovdje su glavni razlozi za korištenje Python 3 Brojač:
- Brojač drži podatke u neuređenoj zbirci, baš kao objekti hashtable. Elementi ovdje predstavljaju ključeve i broj kao vrijednosti.
- Omogućuje vam brojanje stavki na popisu koji se može ponavljati.
- Aritmetičke operacije poput zbrajanja, oduzimanja, sjecišta i unije mogu se jednostavno izvesti na brojaču.
- Brojač također može brojati elemente iz drugog brojača
Uvod u Python Counter
Python Brojač uzima u ulaz popis, tuple, rječnik, string, koji su svi objekti koji se mogu ponavljati, 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 ima elemente x, y i z. Kada koristite brojač na ovom popisu, on će brojati koliko su puta prisutni x, y i z. Izlaz ako se brojač koristi na popisu1 trebao bi biti nešto poput:
Counter({'x': 4, 'y': 2, 'z': 2})
Dakle, imamo broj x kao 4, y kao 2 i z kao 2.
Da bismo koristili Counter, moramo ga prvo uvesti kao što je prikazano u donjem primjeru:
from collections import Counter
Evo jednostavnog primjera koji pokazuje rad modula brojača.
from collections import Counter list1 = ['x','y','z','x','x','x','y', 'z'] print(Counter(list1))
Izlaz:
Counter({'x': 4, 'y': 2, 'z': 2})
Brojač s nizom
In Python, sve je objekt i niz je također objekt. Python niz može se stvoriti jednostavnim stavljanjem znakova u dvostruke navodnike. Python ne podržava vrstu znakova. Oni se tretiraju kao nizovi duljine jedan, također se smatraju podnizovima.
U donjem primjeru, niz se prosljeđuje brojaču. Vraća format rječnika, s parom ključ/vrijednost gdje je ključ element, a vrijednost broj. Također razmatra prostor kao element i daje broj razmaka u nizu.
Primjer:
from collections import Counter my_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 listom
Popis je objekt koji se može ponavljati i koji ima svoje elemente unutar uglatih zagrada.
Elementi na popisu kada se daju brojaču bit će pretvoreni u objekte hashtable u kojima će elementi postati ključevi, a vrijednosti će biti broj elemenata s danog popisa.
Na primjer ['x','y','z','x','x','x','y','z']. Nakon što popisu date Brojač, on će vam dati broj svakog elementa na popisu.
from collections import Counter list1 = ['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 napisani su unutar vitičastih zagrada.
Jednom kada je rječnik dan brojaču, bit će pretvoren u objekte hashtable u kojima će elementi postati ključevi, a vrijednosti će biti broj elemenata iz danog rječnika.
Na primjer: {'x': 4, 'y': 2, 'z': 2, 'z': 2}. Funkcija brojača pokušat će pronaći broj svakog ključa u danom rječniku.
from collections import Counter dict1 = {'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 objekata odvojenih zarezima unutar okruglih zagrada. Brojač će vam dati broj svakog elementa u zadanoj torki.
Nakon što se tuple preda brojaču, bit će pretvoren u objekt hashtable u kojem će elementi postati ključevi, a vrijednosti će biti broj elemenata iz dane tuple.
from collections import Counter tuple1 = ('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 torke kao što je prikazano u nastavku:
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
Također možete inicijalizirati prazan brojač kao što je prikazano u nastavku:
from collections import Counter _count = Counter()
Ažuriranje brojača
Brojaču možete dodati vrijednosti 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 šalteru
Da biste dobili vrijednosti 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 : 3 G : 1 u : 3 r : 2 u : 3
Brisanje elementa iz brojača
Za brisanje elementa iz brojača možete upotrijebiti del, kao što je prikazano u primjeru ispod:
Primjer:
from collections import Counter dict1 = {'x': 4, 'y': 2, 'z': 2} del dict1["x"] print(Counter(dict1))
Izlaz:
Counter({'y': 2, 'z': 2})
Aritmetička operacija uključena Python Counter
Aritmetičke operacije poput zbrajanja, oduzimanja, presjeka i unije mogu se izvesti na brojaču kao što je prikazano u primjeru ispod:
Primjer:
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)
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 Counter
Postoje neke važne metode dostupne uz Counter, evo popisa istih:
- elementi() : Ova metoda će vam vratiti sve elemente s brojem >0. Elementi s brojem 0 ili -1 neće se vratiti.
- najčešće_uobičajeno(vrijednost): Ova metoda će vam vratiti najčešće elemente s popisa brojača.
- oduzeti(): Ova se metoda koristi za oduzimanje elemenata iz drugog brojača.
- Ažuriraj(): Ova se metoda koristi za ažuriranje elemenata iz drugog brojača.
Primjer: elementi()
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)
Izlaz:
x x x x x y y
Primjer: most_common(vrijednost)
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)
Izlaz:
[('y', 12), ('x', 5)] [('y', 12), ('x', 5), ('x1', 0), ('z', -2)]
Primjer: subtract()
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)
Izlaz:
Counter({'y': 7, 'x': 3, 'x1': 0, 'z': -2})
Primjer: update()
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)
Izlaz:
Counter({'y': 17, 'x': 7, 'x1': 0, 'z': -2})
Preraspodjela se ubraja u Python
Brojeve brojača možete ponovno dodijeliti kao što je prikazano u nastavku:
Zamislite da imate rječnik kao: {'x': 5, 'y': 12, 'z': -2, 'x1':0}
Možete promijeniti broj elementa kao što je prikazano u nastavku:
from collections import Counter counter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0}) counter1['y'] = 20 print(counter1)
Izlaz: Nakon izvođenja vidjet ćete da se y brojač promijenio s 12 na 20
Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2})
Dobijte i postavite broj elemenata pomoću brojača
Da biste dobili broj elementa koristeći Counter, možete učiniti sljedeće:
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'
Izlaz:
12
Za postavljanje broja elementa možete učiniti sljedeće:
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)
Izlaz:
12 Counter({'y': 20, 'y1': 10, 'x': 5, 'x1': 0, 'z': -2})
rezime
- Brojač je spremnik koji će sadržavati brojanje svakog od elemenata prisutnih u spremniku.
- Brojač je potklasa dostupna unutar klase rječnika.
- Korištenje Python Alat za brojanje, možete prebrojati parove ključ-vrijednost u objektu, koji se također naziva objekt hashtable.
- Brojač drži podatke u neuređenoj zbirci, baš kao objekti hashtable. Elementi ovdje predstavljaju ključeve i broj kao vrijednosti.
- Omogućuje vam brojanje stavki na popisu koji se može ponavljati.
- Aritmetičke operacije poput zbrajanja, oduzimanja, sjecišta i unije 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 elements(), most_common(value), subtract() i update().
- Brojač se može koristiti na nizu, listi, rječniku i torci.