Python Counter v zbirkah s primerom

Kazalo:

Anonim

Kaj je števec Python?

Python Counter je vsebnik, ki bo vseboval število elementov v vsebniku. Števec je podrazred, ki je na voljo znotraj razreda slovarja.

Števec je podrazred, ki je na voljo znotraj razreda slovarja. Z orodjem števec Python lahko preštejete pare ključ / vrednost v objektu, imenovanem tudi objekt razpršene tabele.

Zakaj uporabljati Python Counter?

Tu so glavni razlogi za uporabo števca Python 3:

  • Števec hrani podatke v neurejeni zbirki, tako kot predmeti z razpršitvijo. Tu elementi predstavljajo ključe in štejejo kot vrednosti.
  • Omogoča vam štetje elementov na ponovljivem seznamu.
  • Aritmetične operacije, kot so seštevanje, odštevanje, presečišče in združevanje, je mogoče enostavno izvajati na števcu.
  • Števec lahko šteje tudi elemente iz drugega števca

V tej vadnici za Python boste izvedeli:

  • Kaj je števec Python?
  • Zakaj uporabljati Python Counter?
  • Uvod v Python Counter
  • Števec z nizom
  • Števec s seznamom
  • Števec s slovarjem
  • Števec s tuplem
  • Dostop, inicializacija in posodabljanje števcev
  • Brisanje elementa iz števca
  • Aritmetično delovanje na števcu Python
  • Metode, ki so na voljo na števcu Python
  • Prerazporeditev štetja v Pythonu
  • Pridobite in nastavite število elementov s števcem

Uvod v Python Counter

Python Counter vnese seznam, nabor, slovar, niz, ki so vsi predmeti, ki se lahko ponovijo, in vam bo dal izhod, ki bo vseboval število posameznih elementov.

Sintaksa:

Counter(list)

Upoštevajte, da imate naslednji seznam:

list1 = ['x','y','z','x','x','x','y', 'z']

Seznam vsebuje elemente x, y in z. Ko na tem seznamu uporabite števec, bo preštel, kolikokrat so prisotni x, y in z. Izhod, če se števec uporablja na list1, bi moral biti približno tak:

Counter({'x': 4, 'y': 2, 'z': 2})

Tako imamo število x kot 4, y kot 2 in z kot 2.

Če želite uporabiti števec, ga moramo najprej uvoziti, kot je prikazano v spodnjem primeru:

from collections import Counter

Tu je preprost primer, ki prikazuje delovanje modula Counter.

from collections import Counterlist1 = ['x','y','z','x','x','x','y', 'z']print(Counter(list1))

Izhod:

Counter({'x': 4, 'y': 2, 'z': 2})

Števec z nizom

V Pythonu je vse objekt in tudi niz je objekt. Niz Python lahko ustvarite preprosto tako, da v dvojni narekovaj zaprete znake. Python ne podpira vrste znakov. Ti se obravnavajo kot nizi dolžine ena, ki se štejejo tudi za podniz.

V spodnjem primeru se niz posreduje v števec. Vrne obliko slovarja s parom ključ / vrednost, kjer je ključ element, vrednost pa štetje. Prav tako upošteva prostor kot element in poda število presledkov v nizu.

Primer:

from collections import Countermy_str = "Welcome to Guru99 Tutorials!"print(Counter(my_str))

Izhod:

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})

Števec s seznamom

Seznam je iterable objekt, ki ima svoje elemente v oglatih oklepajih.

Elementi na seznamu, ki bodo podani števcu, bodo pretvorjeni v razpršilne predmete, pri čemer bodo elementi postali ključi, vrednosti pa bodo štetje elementov s podanega seznama.

Na primer ['x', 'y', 'z', 'x', 'x', 'x', 'y', 'z']. Ko seznamu dodelite števec, vam bo prikazal število posameznih elementov na seznamu.

from collections import Counterlist1 = ['x','y','z','x','x','x','y','z']print(Counter(list1))

Izhod:

Counter({'x': 4, 'y': 2, 'z': 2})

Števec s slovarjem

Slovar ima elemente kot par ključ / vrednost in so zapisani v zavitih oklepajih.

Ko je slovar podan števcu, se pretvori v razpršilne predmete, pri čemer bodo elementi postali ključi, vrednosti pa bodo štetje elementov iz danega slovarja.

Na primer: {'x': 4, 'y': 2, 'z': 2, 'z': 2}. Funkcija števec bo poskušala najti število vsakega ključa v danem slovarju.

from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2, 'z': 2}print(Counter(dict1))

Izhod:

Counter({'x': 4, 'y': 2, 'z': 2})

Števec s tuplem

Tuple je zbirka predmetov, ločenih z vejicami v okroglih oklepajih. Števec vam bo dal število vseh elementov v podanem tupletu.

Ko je nabor dodeljen števcu, se pretvori v objekt, ki ga lahko razprši, pri čemer bodo elementi postali ključi, vrednosti pa bodo štetje elementov iz podanega nabora.

from collections import Countertuple1 = ('x','y','z','x','x','x','y','z')print(Counter(tuple1))

Izhod:

Counter({'x': 4, 'y': 2, 'z': 2})

Dostop, inicializacija in posodabljanje števcev

Inicializacijski števec

Števec je mogoče inicializirati s predajo vrednosti niza, seznama, slovarja ali nabora, kot je prikazano spodaj:

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

Prav tako lahko inicializirate prazen števec, kot je prikazano spodaj:

from collections import Counter_count = Counter()

Posodabljanje števca

Vrednosti lahko števcu dodate z uporabo metode update ().

_count.update('Welcome to Guru99 Tutorials!')

Končna koda je:

from collections import Counter_count = Counter()_count.update('Welcome to Guru99 Tutorials!')print(_count)

Rezultat 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})

Dostop do števca

Če želite vrednosti dobiti iz števca, lahko storite naslednje:

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]))

Izhod:

u : 3G : 1u : 3r : 2u : 3

Brisanje elementa iz števca

Za brisanje elementa iz števca lahko uporabite del, kot je prikazano v spodnjem primeru:

Primer:

from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2}del dict1["x"]print(Counter(dict1))

Izhod:

Counter({'y': 2, 'z': 2})

Aritmetično delovanje na števcu Python

Aritmetične operacije, kot so seštevanje, odštevanje, presečišče in združevanje, lahko izvedete na števcu, kot je prikazano v spodnjem primeru:

Primer:

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)

Izhod:

Counter({'y': 7, 'x': 4, 'z': 2})Counter({'x1': 12, 'x': 4})Counter({'y': 2})Counter({'y': 5, 'x': 4, 'z': 4})

Metode, ki so na voljo na števcu Python

Z Counterjem je na voljo nekaj pomembnih metod, tukaj je seznam istih:

  • elements () : Ta metoda vam vrne vse elemente s številom> 0. Elementi s številom 0 ali -1 ne bodo vrnjeni.
  • most_common (value): Ta metoda vam vrne najpogostejše elemente s seznama števcev .
  • odštevanje (): Ta metoda se uporablja za odštevanje elementov iz drugega števca.
  • update (): Ta metoda se uporablja za posodobitev elementov iz drugega števca.

Primer: 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)

Izhod:

xxxxxyy

Primer: most_common (vrednost)

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)

Izhod:

[('y', 12), ('x', 5)][('y', 12), ('x', 5), ('x1', 0), ('z', -2)]

Primer: odštevanje ()

from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.subtract(counter2)print(counter1)

Izhod:

Counter({'y': 7, 'x': 3, 'x1': 0, 'z': -2})

Primer: 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)

Izhod:

Counter({'y': 17, 'x': 7, 'x1': 0, 'z': -2})

Prerazporeditev štetja v Pythonu

Štetje števca lahko znova dodelite, kot je prikazano spodaj:

Recimo, da imate slovar kot: {'x': 5, 'y': 12, 'z': -2, 'x1': 0}

Število elementov lahko spremenite, kot je prikazano spodaj:

from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter1['y'] = 20print(counter1)

Izhod: Po izvedbi boste videli, da se število y spremeni s 12 na 20

Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2})

Pridobite in nastavite število elementov s števcem

Če želite izračunati število elementov z uporabo števca, lahko storite naslednje:

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'

Izhod:

12

Za nastavitev števila elementov lahko storite naslednje:

from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})print(counter1['y'])counter1['y'] = 20counter1['y1'] = 10print(counter1)

Izhod:

12Counter({'y': 20, 'y1': 10, 'x': 5, 'x1': 0, 'z': -2})

Povzetek:

  • Števec je vsebnik, ki bo vseboval število elementov, ki so v njem.
  • Števec je podrazred, ki je na voljo znotraj slovarskega razreda.
  • Z orodjem števec Python lahko štejete pare ključ / vrednost v objektu, imenovanem tudi razpršilni objekt.
  • Števec hrani podatke v neurejeni zbirki, tako kot predmeti z razpršitvijo. Tu elementi predstavljajo ključe in štejejo kot vrednosti.
  • Omogoča vam štetje elementov na ponovljivem seznamu.
  • Aritmetične operacije, kot so seštevanje, odštevanje, presečišče in združevanje, je mogoče enostavno izvajati na števcu.
  • Števec lahko šteje tudi elemente iz drugega števca.
  • Najpomembnejše metode, ki so na voljo na števcu, so elementi (), najpogostejša_pogosta (vrednost), odštevanje () in posodobitev ().
  • Števec se lahko uporablja v nizu, seznamu, slovarju in naboru.