Python brojač u zbirkama s primjerom

Sadržaj:

Anonim

Š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.