Python Teller i samlinger med eksempel

โšก Smart oppsummering

Python Counter er en ordbokunderklasse fra samlingsmodulen som teller hvor ofte hvert element vises i en iterabel element. Den aksepterer strenger, lister, tupler og ordbรธker, og stรธtter deretter aritmetiske, most_common og update-operasjoner for raske telleoppgaver.

  • ๐Ÿ”ข Teller: Telleren teller opp forekomster av hvert element og returnerer dem som nรธkkel-tall-par.
  • ๐Ÿ“ฅ Enhver itererbar: Den aksepterer strenger, lister, tupler og ordbรธker som input.
  • โž• Aritmetikk: Tellere stรธtter addisjon, subtracsjon, kryss og fagforeningsoperasjoner.
  • ๐Ÿ† mest_vanlige(): Denne metoden returnerer elementene med hรธyest frekvens i rangert rekkefรธlge.
  • ๐Ÿ”„ Oppdatering: oppdater() og subtract() justerer antall fra en annen teller eller iterabel.
  • ๐Ÿค– AI-hjelp: AI-assistenter genererer tellerkode og foreslรฅr den for frekvens- og ordtellingsoppgaver.

Python Teller i samlinger

Hva er Python Disk?

Python Teller er en beholder som vil holde tellingen av hvert av elementene som finnes i beholderen. Telleren er en underklasse som er tilgjengelig i ordbokklassen.

Telleren er en underklasse tilgjengelig i ordbokklassen. Ved รฅ bruke Python Tellerverktรธy, du kan telle nรธkkelverdi-parene i et objekt, ogsรฅ kalt et hash-tabellobjekt.

Hvorfor bruke Python Disk?

Her er viktige grunner til รฅ bruke Python 3 Teller:

  • Telleren holder dataene i en uordnet samling, akkurat som hashbare objekter. Elementene her representerer nรธklene og teller som verdier.
  • Den lar deg telle elementene i en itererbar liste.
  • Aritmetiske operasjoner som addisjon, subtilitettracsjon, skjรฆringspunkt og forening kan enkelt utfรธres pรฅ en teller.
  • En teller kan ogsรฅ telle elementer fra en annen teller

Introduksjon til Python Motvirke

Python Telleren tar inn en liste, tuppel, ordbok, streng, som alle er gjentakbare objekter, og den vil gi deg utdata som vil ha antallet av hvert element.

Syntaks:

Counter(list)

Tenk pรฅ at du har en fรธlgende liste:

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

Listen har elementene x , y og z. Nรฅr du bruker Counter pรฅ denne listen , vil den telle hvor mange ganger x , y og z er tilstede. Utgangen hvis telleren brukes pรฅ liste1 skal vรฆre noe sรฅnt som:

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

Sรฅ vi har antallet x som 4, y som 2 og z som 2.

For รฅ bruke Counter mรฅ vi fรธrst importere den som vist i eksemplet nedenfor:

from collections import Counter

Her er et enkelt eksempel som viser hvordan tellemodulen fungerer.

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

Utgang:

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

Teller med streng

In Python, alt er et objekt og streng er ogsรฅ et objekt. Python string kan lages ganske enkelt ved รฅ omslutte tegn i det doble anfรธrselstegn. Python stรธtter ikke en tegntype. Disse behandles som strenger med lengde รฉn, ogsรฅ betraktet som en understreng.

I eksemplet nedenfor sendes en streng til Counter. Den returnerer ordbokformat, med nรธkkel/verdi-par der nรธkkelen er elementet og verdien er antallet. Den vurderer ogsรฅ plass som et element og gir antall mellomrom i strengen.

Eksempel:

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

Utgang:

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

Teller med List

En liste er et gjentakelig objekt som har elementene sine innenfor hakeparenteser.

Elementene i listen nรฅr de gis til telleren vil bli konvertert til hashbare objekter der elementene blir nรธkler og verdiene vil vรฆre antallet av elementene fra listen gitt.

For eksempel ['x','y','z','x','x','x','y','z']. Nรฅr du gir listen telleren, vil den gi deg antallet av hvert element i listen.

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

Utgang:

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

Teller med ordbok

En ordbok har elementer som nรธkkel/verdi-par, og de er skrevet innenfor krรธllede parenteser.

Nรฅr ordboken er gitt til telleren, vil den bli konvertert til et hashbart objekt der elementene blir nรธkler, og verdiene vil vรฆre tellingen av elementene fra ordboken som er gitt.

For eksempel: {'x': 4, 'y': 2, 'z': 2, 'z': 2}. Tellerfunksjonen vil prรธve รฅ finne antallet av hver av tastene i den gitte ordboken.

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

Utgang:

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

Teller med Tuple

Tuple er en samling objekter atskilt med kommaer innenfor runde parenteser. Teller vil gi deg tellingen av hvert av elementene i tuppelen som er gitt.

Nรฅr tuppelen er gitt til telleren, vil den bli konvertert til et hashbart objekt der elementene blir nรธkler og verdiene vil vรฆre tellingen av elementene fra den gitte tuppelen.

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

Utgang:

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

Fรฅ tilgang til, initialisering og oppdatering av tellere

Initialiserer teller

En teller kan initialiseres ved รฅ sende strengverdi, liste, ordbok eller tuppel som vist nedenfor:

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

Du kan ogsรฅ initialisere en tom teller som vist nedenfor:

from collections import Counter
_count = Counter()

Oppdaterer telleren

Du kan legge til verdier til telleren ved รฅ bruke update()-metoden.

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

Den endelige koden er:

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

Utgangen er:

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

Tilgang til teller

For รฅ hente verdiene fra telleren kan du gjรธre som fรธlger:

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

Utgang:

u : 3

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

Sletting av et element fra telleren

For รฅ slette et element fra Counter kan du bruke del , som vist i eksemplet nedenfor:

Eksempel:

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

Utgang:

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

Aritmetisk operasjon pรฅ Python Motvirke

Aritmetiske operasjoner som addisjon, subtracsjon, skjรฆringspunkt og forening kan gjรธres pรฅ en teller som vist i eksemplet nedenfor:

Eksempel:

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)

Utgang:

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

Metoder tilgjengelig pรฅ Python Motvirke

Det er noen viktige metoder tilgjengelig med Counter, her er listen over de samme:

  • elementer() : Denne metoden vil returnere alle elementene med telling >0. Elementer med 0 eller -1 teller vil ikke bli returnert.
  • mest_vanlig(verdi): Denne metoden vil returnere de vanligste elementene fra tellerlisten.
  • nedenfortract(): Denne metoden brukes til รฅ trekke elementene fra en annen teller.
  • oppdatering(): Denne metoden brukes til รฅ oppdatere elementene fra en annen teller.

Eksempel: elementer()

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)

Utgang:

x
x
x
x
x
y
y

Eksempel: most_common(verdi)

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)

Utgang:

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

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

Utgang:

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

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

Utgang:

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

Omtildeling teller inn Python

Du kan tilordne tellere pรฅ nytt som vist nedenfor:

Tenk pรฅ at du har en ordbok som: {'x': 5, 'y': 12, 'z': -2, 'x1':0}

Du kan endre antallet av elementet som vist nedenfor:

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

counter1['y'] = 20

print(counter1)

Utgang: Etter รฅ ha utfรธrt vil du se at y-tellingen endres fra 12 til 20

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

Fรฅ og still inn antallet elementer ved hjelp av Counter

For รฅ fรฅ tellingen til et element ved รฅ bruke Counter kan du gjรธre som fรธlger:

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'

Utgang:

12

For รฅ stille inn antallet av elementet kan du gjรธre som fรธlger:

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)

Utgang:

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

Spรธrsmรฅl og svar

Counter er en underklasse av typen dict som teller hashbare elementer automatisk og returnerer 0 for manglende nรธkler i stedet for รฅ generere KeyError. En vanlig ordbok trenger manuell tellelogikk og genererer KeyError for manglende nรธkler.

most_common(n) returnerer de n elementene med hรธyest antall som (element, count) tupler, sortert fra mest til minst hyppig. Kalling uten et argument returnerer alle elementene sortert etter antall.

nedenfortract() beholder null og negative tellinger etter fratrekk og endrer telleren pรฅ plass. Minus-operatoren returnerer en ny teller og fjerner ethvert element som har et resultat som er null eller negativt.

Ja. Del teksten fรธrst, for eksempel Counter(sentence.split()), for รฅ telle hele ord. ร… sende en rรฅ streng teller individuelle tegn, inkludert mellomrom, i stedet for ord.

Bruk sum(counter.values()) for รฅ legge sammen hvert antall, eller Counter.total() i Python 3.10 og senere. Dette gir antallet elementer telleren har telt opp totalt.

Telleren overstyrer __missing__, slik at ethvert fravรฆrende element rapporterer en telling pรฅ 0. Dette lar deg รธke nye nรธkler og spรธrre elementer trygt uten รฅ sjekke om de finnes fรธrst.

AI-assistenter genererer tellerkode for frekvensanalyse, anbefaler teller fremfor manuelle lรธkker og forklarer metoder som most_common og elementer. De konverterer ogsรฅ tellelogikk til renere og raskere samlingsbasert kode.

Ja. GitHub Copilot fullfรธrer automatisk Counter-, defaultdict- og OrderedDict-mรธnstre fra en kommentar som beskriver mรฅlet ditt. Agentic AI-verktรธy omdanner manuelle tellelรธkker til Counter-kall og legger til tester pรฅ tvers av en fil.

Oppsummer dette innlegget med: