Python Näidiste loendur kollektsioonides

⚡ Nutikas kokkuvõte

Python Counter on sõnastiku alamklass kollektsioonide moodulist, mis loendab, kui sageli iga element itereeritavas objektis esineb. See aktsepteerib stringe, loendeid, tupleid ja sõnastikke ning toetab seejärel aritmeetikat, kõige levinumaid ja värskendamise operatsioone kiirete loendamise ülesannete jaoks.

  • 🔢 Loendamine: Counter loendab iga elemendi esinemised ja tagastab need võtme-loenduri paaridena.
  • 📥 Iga korduvkasutatav: See aktsepteerib sisendina stringe, loendeid, tupleid ja sõnaraamatuid.
  • Aritmeetika: Loendurid toetavad liitmist ja alamloendusttracliitmis-, lõike- ja liitmistehted.
  • ???? kõige_tavalisem(): See meetod tagastab kõrgeima sagedusega elemendid järjestatud järjekorras.
  • 🔄 Värskenda: uuenda() ja alamtract() reguleerib loendureid teisest loendurist või itereeritavast objektist.
  • 🤖 Tehisintellekti abi: Tehisintellekti assistendid genereerivad loendurikoodi ja pakuvad seda sageduse ja sõnade arvu ülesannete jaoks.

Python Loendur kollektsioonides

Mis on Python Counter?

Python Loendur on konteiner, mis sisaldab kõigi konteineris olevate elementide arvu. Loendur on sõnastikuklassis saadaval olev alamklass.

Loendur on sõnastikuklassis saadaval olev alamklass. Kasutades Python Loenduri tööriist, saate loendada võtme-väärtuse paare objektis, mida nimetatakse ka räsitabeli objektiks.

Miks kasutada Python Counter?

Siin on kasutamise peamised põhjused Python 3 loendur:

  • Loendur hoiab andmeid järjestamata kogus, täpselt nagu räsitavad objektid. Siin olevad elemendid tähistavad võtmeid ja väärtust.
  • See võimaldab teil loendada itereeritavas loendis olevaid üksusi.
  • Aritmeetilised tehted nagu liitmine, lahutaminetractsiooni, lõikumist ja ühendamist saab loenduril hõlpsalt teostada.
  • Loendur võib lugeda elemente ka teisest loendurist

Sissejuhatus Python Võidelda

Python Loendur võtab sisendiks loendi, korteeži, sõnastiku, stringi, mis kõik on itereeritavad objektid, ja annab teile väljundi, milles on iga elemendi arv.

süntaksit:

Counter(list)

Arvestage, et teil on järgmine loend:

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

Loendis on elemente x , y ja z. Kui kasutate loendis loendurit , loendab see, mitu korda x , y ja z on olemas. Väljund, kui loendurit kasutatakse loendis 1, peaks olema umbes selline:

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

Seega on x arv 4, y 2 ja z 2.

Loenduri kasutamiseks peame selle esmalt importima, nagu on näidatud allolevas näites:

from collections import Counter

Siin on lihtne näide, mis näitab loenduri mooduli tööd.

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

Väljund:

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

Stringiga loendur

In Python, kõik on objekt ja ka string on objekt. Python nöör saab luua lihtsalt märkide lisamisega topeltjutumärkidesse. Python ei toeta märgitüüpi. Neid käsitletakse ühe pikkusega stringidena, mida peetakse ka alamstringiks.

Allolevas näites edastatakse string loendurile. See tagastab sõnastiku vormingu võtme/väärtuse paariga, kus võti on element ja väärtus on arv. Samuti käsitleb see ruumi elemendina ja annab stringi tühikute arvu.

Näide:

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

Väljund:

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

Loendur koos loendiga

Loend on itereeritav objekt, mille elemendid on nurksulgudes.

Loendurile antud loendis olevad elemendid teisendatakse räsitavateks objektideks, kus elemendid muutuvad võtmeteks ja väärtusteks on antud loendi elementide arv.

Näiteks ["x", "y", "z", "x", "x", "x", "y", "z"]. Kui annate loendile loenduri, annab see teile loendi iga elemendi arvu.

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

Väljund:

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

Loendur sõnastikuga

Sõnastikus on elemendid võtme/väärtuse paarina ja need on kirjutatud keerdsulgudes.

Kui sõnastik on loendurile antud, teisendatakse see räsitavateks objektideks, kus elemendid muutuvad võtmeteks ja väärtusteks on antud sõnastikust elementide arv.

Näiteks: {'x': 4, 'y': 2, 'z': 2, 'z': 2}. Funktsioon Counter püüab leida antud sõnastikus olevate võtmete arvu.

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

Väljund:

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

Loendur koos Tuple'iga

Tuple on objektide kogum, mis on ümarsulgudes komadega eraldatud. Loendur annab teile antud korteri kõigi elementide arvu.

Kui korteež on loendurile antud, teisendatakse see räsitavaks objektiks, kus elemendid muutuvad võtmeteks ja väärtusteks on antud korteeži elementide arv.

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

Väljund:

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

Loenduritele juurdepääs, nende lähtestamine ja värskendamine

Loenduri lähtestamine

Loendurit saab lähtestada stringiväärtuse, loendi, sõnastiku või korteeži edastamisega, nagu allpool näidatud:

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

Samuti saate tühja loenduri lähtestada, nagu allpool näidatud:

from collections import Counter
_count = Counter()

Loenduri värskendamine

Saate loendurile väärtusi lisada, kasutades meetodit update().

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

Lõplik kood on:

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

Väljund on:

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

Juurdepääs loendurile

Väärtuste saamiseks loendurist saate teha järgmist.

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

Väljund:

u : 3

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

Elemendi kustutamine loendurist

Elemendi kustutamiseks loendist saate kasutada del , nagu on näidatud allolevas näites:

Näide:

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

Väljund:

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

Aritmeetiline tehe sisse lülitatud Python Võidelda

Aritmeetilised tehted nagu liitmine, osamaksetractsiooni, ühisosa ja ühendamise saab teha loenduril, nagu on näidatud allolevas näites:

Näide:

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)

Väljund:

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

Saadaval olevad meetodid Python Võidelda

Counteriga on saadaval mõned olulised meetodid, siin on samade loend:

  • elemendid () : see meetod tagastab teile kõik elemendid, mille arv on >0. Elemente, mille arv on 0 või -1, ei tagastata.
  • most_common(väärtus): See meetod tagastab loendiloendist kõige levinumad elemendid.
  • subtract(): Seda meetodit kasutatakse elementide lahutamiseks teisest loendurist.
  • värskendus (): Seda meetodit kasutatakse elementide värskendamiseks teisest loendurist.

Näide: elements()

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)

Väljund:

x
x
x
x
x
y
y

Näide: most_common(väärtus)

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)

Väljund:

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

Näide: alamtract()

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)

Väljund:

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

Näide: 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)

Väljund:

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

Loendite ümbermääramine Python

Saate loendurite arvu uuesti määrata, nagu allpool näidatud:

Oletame, et teil on sõnastik järgmiselt: {'x': 5, 'y': 12, 'z': -2, 'x1':0}

Saate muuta elementide arvu, nagu allpool näidatud:

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

counter1['y'] = 20

print(counter1)

Väljund: Pärast täitmist näete, et y-de arv muudetakse 12-lt 20-le

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

Hankige ja määrake loenduri abil elementide arv

Elemendi arvu saamiseks loenduri abil saate teha järgmist.

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'

Väljund:

12

Elemendi arvu määramiseks saate teha järgmist.

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)

Väljund:

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

KKK

Counter on sõnastiku alamklass, mis loendab automaatselt räsitavaid üksusi ja tagastab puuduvate võtmete korral 0, selle asemel et tekitada KeyError veaväärtust. Lihtne sõnastik vajab käsitsi loendamise loogikat ja tekitab puuduvate võtmete korral KeyError veaväärtuse.

most_common(n) tagastab n suurima arvuga elementi (element, count) tuuplitena, mis on järjestatud kõige sagedasemast kõige haruldasemani. Selle kutsumine ilma argumendita tagastab kõik elemendid, mis on sorteeritud arvu järgi.

subtract() säilitab nullid ja negatiivsed loendid pärast mahaarvamist ning muudab loendurit. Miinusoperaator tagastab uue loenduri ja eemaldab kõik elemendid, mille tulemus on null või negatiivne.

Jah. Täissõnade loendamiseks jaga tekst esmalt jagamiseks, näiteks Counter(lause.split()). Töötlemata stringi edastamine loendab üksikuid märke, sealhulgas tühikuid, mitte sõnu.

Kasutage iga loenduse liitmiseks sum(counter.values()) või Counter.total() funktsiooni Python 3.10 ja uuemad. See näitab loenduri poolt kokku loendatud elementide koguarvu.

Loendur tühistab __missing__, seega iga puuduv element annab arvuks 0. See võimaldab teil uusi võtmeid ja päringuelemente ohutult suurendada ilma eelnevalt kontrollimata, kas need on olemas.

Tehisintellekti assistendid genereerivad sagedusanalüüsi jaoks loenduri koodi, soovitavad käsitsi loodud tsüklite asemel loendurit ja selgitavad meetodeid nagu „most_common” ja „elements”. Samuti teisendavad nad loendamise loogika puhtamaks ja kiiremaks kollektsioonipõhiseks koodiks.

Jah. GitHub Copilot täidab automaatselt mustrid Counter, defaultdict ja OrderedDict teie eesmärki kirjeldava kommentaari põhjal. Agentic AI tööriistad refaktoreerivad käsitsi loendamise tsüklid Counter-kõnedeks ja lisavad teste kogu faili ulatuses.

Võta see postitus kokku järgmiselt: