Hvordan bruke tellermodulen i Python

Hvordan bruke tellermodulen i Python
Denne artikkelen vil forklare hvordan du bruker "Counter" -modulen som kommer som standard med Python -programmeringsspråket. Alle kodeprøver i denne artikkelen er testet med Python versjon 3.9.5 på Ubuntu 21.04.

Om motmodul

Tellermodulen, som navnet antyder, kan brukes til å telle elementer av en iterable eller et hashabelt objekt i Python. Mot lagrer hvert element i en iterable (som et Python -listeobjekt) som en Python -ordboksnøkkel. Siden Python -ordbøker bare tillater unike nøkler, er det ingen repetisjon. De tilsvarende verdiene for disse ordbøkene nøkler er tellingen, eller hvor mange ganger et element vises i en iterable.

Grunnleggende bruk og syntaks

For å forstå den grunnleggende bruken og syntaks for tellerklasse, ta en titt på kodeprøven nedenfor:

Fra samlinger av samlinger importerer
liste1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" ]
teller = teller (liste1)
trykk (teller)

Den første uttalelsen importerer motmodulen slik at motklassen kan brukes i koden. Deretter er et nytt Python -listeobjekt definert med noen data. Et nytt forekomst av motobjekt opprettes deretter ved å bestå “List1” som et argument. Den endelige uttalelsen skriver ut utdataene fra "teller" -objektet.

Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

Counter ('D': 4, 'B': 3, 'A': 2, 'E': 2, 'C': 1)

Merk at utgangen returnerer et motobjekt av mottypen og ikke en Python -ordbok. Selv om det oppfører seg som en Python -ordbok med en mindre forskjell som er forklart nedenfor.

Et motobjekt oppfører seg som et Python Dictionary -objekt

En ordbok i Python er et objekt som lagrer varer i “Key: Value” -par. Nedenfor er et eksempel på Python Dictionary:

dict1 = "a": 1, "b": 2

Delen før ":" (kolon) symbolet kalles "nøkkel" mens delen etter kolonsymbolet kalles "verdi". Du kan få tilgang til verdien av en hvilken som helst nøkkel i en Python -ordbok ved å bruke følgende syntaks:

dict1 = "a": 1, "b": 2
Print (DICT1 ["A"])

Du må bare oppgi navnet på nøkkelen i “[]” (firkantet) seler. Hvis nøkkelen ikke eksisterer i ordboken, kastes en "nøkkelring".

Utgangen fra tellereksemplet ovenfor viser at når du oppretter en ny forekomst av motklassen, returneres et nytt mottypeobjekt. Dette mottypeobjektet er ikke annet enn en Python -ordbok, bortsett fra at den ikke kaster en "nøkkelring" når en nøkkelverdi mangler. I stedet tildeler den det en verdi av “0” (null). Du kan også få tilgang til verdiene til elementer i et motobjekt ved å oppgi nøkkelnavn i firkantede seler, akkurat som et ordboksobjekt. Ta en titt på kodeprøven nedenfor:

Fra samlinger av samlinger importerer
liste1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" ]
teller = teller (liste1)
trykk (teller ["f"])
dict1 = "a": 1, "b": 2
Print (DICT1 ["C"])

Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

0
Traceback (siste samtale sist):
Fil "hoved.py ", linje 11, i
Print (DICT1 ["C"])
KeyError: 'C'

Som du kan se i utgangen at når du får tilgang til en nøkkel som ikke eksisterer i et motobjekt, blir “0” (null) returnert. Mens det er på den annen side, kaster et Python -ordbokobjekt en "nøkkelring" når en nøkkel mangler.

Opprette et motobjekt manuelt

Det kan være en sak der du kanskje vil definere et motobjekt manuelt i stedet for å analysere en iterable som en Python -liste. For å lage et motobjekt, kan du bruke følgende syntaks:

Fra samlinger av samlinger importerer
teller1 = teller (a = 4, b = 3)
Counter2 = Counter ("A": 4, "B": 3)
Print (Counter1)
Print (Counter2)

Du kan bruke Syntax for argumentstil som vises i den første uttalelsen, eller bruke Python Dictionary Style Syntax vist i den andre uttalelsen for å lage nye forekomster av et motobjekt. Begge metodene har samme effekt og gir samme utgang.

Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

Teller ('a': 4, 'b': 3)
Teller ('a': 4, 'b': 3)

Få vanligste gjenstander fra et motobjekt

Du kan bruke metoden “Most_common” for å få elementer og tellingene deres sortert i synkende rekkefølge fra et motobjekt av mottypen. Ta en titt på kodeprøven nedenfor:

Fra samlinger av samlinger importerer
liste1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" ]
teller = teller (liste1)
trykk (teller.mest vanlig())

Utgangen returnerer en liste over tuples og ikke en teller- eller python -ordbokobjekt.

Du kan også få bare noen få viktigste elementer ved å levere et nummer til "Most_common" -metoden som et argument.

Fra samlinger av samlinger importerer
liste1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" ]
teller = teller (liste1)
trykk (teller.MEST_COMMON (2))

Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

[('D', 4), ('B', 3)]

Andre nyttige motmetoder

Du kan få tilgang til alle nøkler og verdier av et motobjekt ved å bruke henholdsvis "nøkler" og "verdier" -metoder ".

Fra samlinger av samlinger importerer
liste1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" ]
teller = teller (liste1)
trykk (teller.Keys ())
trykk (teller.verdier ())

Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

dict_keys (['a', 'b', 'c', 'd', 'e'])
dict_values ​​([2, 3, 1, 4, 2])

Disse metodene gir iterable gjenstander slik at du kan sløyfe gjennom dem.

Du kan få både nøkler og verdier ved å bruke "elementene" -metoden.

Fra samlinger av samlinger importerer
liste1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" ]
teller = teller (liste1)
trykk (teller.elementer ())

Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

dict_items ([('a', 2), ('b', 3), ('c', 1), ('d', 4), ('e', 2)])

Du kan også sløyfe gjennom resultatet oppnådd ved å bruke "elementet" -metoden.

Du kan konvertere et motobjekt til en Python -ordbok ved hjelp av "DICT" -funksjonen.

Fra samlinger av samlinger importerer
liste1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" ]
teller = teller (liste1)
Print (Dict (teller))

Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

'A': 2, 'B': 3, 'C': 1, 'D': 4, 'E': 2

Sløyfe gjennom nøkler og verdier av et motobjekt

Du kan enkelt sløyfe gjennom nøkkelverdipar av et motobjekt ved hjelp av "elementer" -metoden forklart ovenfor. Ta en titt på kodeprøven nedenfor:

Fra samlinger av samlinger importerer
liste1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" ]
teller = teller (liste1)
for nøkkel, verdi i teller.elementer ():
trykk (tast, verdi)

I koden kan du få tilgang.

Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

A 2
B 3
C 1
D 4
E 2

Konklusjon

Pythons innebygde "counter" -modul gir en rask og effektiv måte å få antall gjenstander lagret i et iterable type objekt. Du kan bruke metoden “Most_common” for å få topp par med høyeste tellinger ved å levere ønsket nummer som et argument.