Python Contor în colecții cu exemplu

⚡ Rezumat inteligent

Python Counter este o subclasă de dicționar din modulul colecții care înregistrează frecvența apariției fiecărui element într-un iterabil. Acceptă șiruri de caractere, liste, tupluri și dicționare, apoi suportă operații aritmetice, most_common și de actualizare pentru sarcini de numărare rapidă.

  • 🔢 Socoteală: Contorul numără aparițiile fiecărui element și le returnează ca perechi cheie-număr.
  • 📥 Orice iterabil: Acceptă ca intrare șiruri de caractere, liste, tupluri și dicționare.
  • ➕ Aritmetic: Contoarele acceptă adunarea, subconstituireatracoperațiuni la țiune, intersecție și uniuni.
  • 🏆 cele mai_comune(): Această metodă returnează elementele cu cea mai mare frecvență în ordine ierarhică.
  • 🔄 Actualizați: actualizare() și subtract() ajustează numărătoarea dintr-un alt contor sau iterabil.
  • 🤖 Ajutor AI: Asistenții inteligenți artificiali generează cod contor și îl sugerează pentru sarcini de frecvență și numărare de cuvinte.

Python Contor în colecții

Ce Este Python Contra?

Python Contorul este un container care va deține numărul fiecăruia dintre elementele prezente în container. Contorul este o subclasă disponibilă în cadrul clasei de dicționar.

Contorul este o subclasă disponibilă în cadrul clasei de dicționar. Folosind Python Instrument de contorizare, puteți număra perechile cheie-valoare dintr-un obiect, numit și obiect tabel hash.

De ce sa folosim Python Contra?

Iată motivele majore pentru utilizare Python 3 Contor:

  • Contorul deține datele într-o colecție neordonată, la fel ca obiectele hashtable. Elementele de aici reprezintă cheile și numără ca valori.
  • Vă permite să numărați articolele dintr-o listă iterabilă.
  • Operații aritmetice precum adunarea, subdivizareatracțiunea, intersecția și uniunea pot fi efectuate cu ușurință pe un contor.
  • Un contor poate număra și elemente dintr-un alt contor

Introducere în Python Contracara

Python Counter preia în intrare o listă, tuplu, dicționar, șir, care sunt toate obiecte iterabile și vă va oferi o ieșire care va avea numărul fiecărui element.

Sintaxă:

Counter(list)

Considerați că aveți următoarea listă:

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

Lista are elementele x , y și z. Când utilizați Counter pe această listă , acesta va număra de câte ori este prezent x , y și z. Ieșirea dacă contorul este folosit pe list1 ar trebui să fie ceva de genul:

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

Deci avem numărul de x ca 4, y ca 2 și z ca 2.

Pentru a folosi Counter, trebuie să îl importam mai întâi, așa cum se arată în exemplul de mai jos:

from collections import Counter

Iată un exemplu simplu, care arată funcționarea modulului Counter.

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

ieșire:

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

Contor cu șir

In Python, totul este un obiect și șir este un obiect. Python şir poate fi creat pur și simplu prin includerea caracterelor în ghilimele duble. Python nu acceptă un tip de caracter. Acestea sunt tratate ca șiruri de lungime unu, considerate și subșiruri.

În exemplul de mai jos, un șir este transmis la Counter. Returnează formatul de dicționar, cu perechea cheie/valoare în care cheia este elementul și valoarea este numărul. De asemenea, consideră spațiul ca element și oferă numărul de spații din șir.

Exemplu:

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

ieșire:

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

Contor cu Listă

O listă este un obiect iterabil care are elementele între paranteze pătrate.

Elementele din listă atunci când sunt date Contorului vor fi convertite într-un obiect hashtable în care elementele vor deveni chei, iar valorile vor fi numărul elementelor din lista dată.

De exemplu ['x','y','z','x','x','x','y','z']. Odată ce oferiți listei Contorul, acesta vă va oferi numărul fiecărui element din listă.

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

ieșire:

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

Contor cu Dicţionar

Un dicționar are elemente ca pereche cheie/valoare și sunt scrise între paranteze.

Odată ce dicționarul este dat Contorului, acesta va fi convertit într-un obiect hashtable în care elementele vor deveni chei, iar valorile vor fi numărul elementelor din dicționarul dat.

De exemplu: {'x': 4, 'y': 2, 'z': 2, 'z': 2}. Funcția Counter va încerca să găsească numărul fiecărei chei din dicționarul dat.

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

ieșire:

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

Contor cu tuplu

Tuplu este o colecție de obiecte separate prin virgule în paranteze rotunde. Counter vă va oferi numărul fiecăruia dintre elementele din tuplu dat.

Odată ce tuplu este dat la Counter, acesta va fi convertit într-un obiect hashtable în care elementele vor deveni chei, iar valorile vor fi numărul elementelor din tuplul dat.

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

ieșire:

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

Accesarea, inițializarea și actualizarea contoarelor

Contor de inițializare

Un contor poate fi inițializat prin transmiterea valorii șirului, a listei, a dicționarului sau a tuplului, așa cum se arată mai jos:

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

De asemenea, puteți inițializa un contor gol, așa cum se arată mai jos:

from collections import Counter
_count = Counter()

Actualizare contor

Puteți adăuga valori la Counter utilizând metoda update().

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

Codul final este:

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

Rezultatul este:

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

Accesare Counter

Pentru a obține valorile de la contor, puteți face după cum urmează:

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

ieșire:

u : 3

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

Ștergerea unui element din contor

Pentru a șterge un element din Counter, puteți folosi del , așa cum se arată în exemplul de mai jos:

Exemplu:

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

ieșire:

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

Operație aritmetică activată Python Contracara

Operații aritmetice precum adunarea, subdivizareatracțiunea, intersecția și uniunea pot fi realizate pe un contor, așa cum se arată în exemplul de mai jos:

Exemplu:

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)

ieșire:

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

Metode disponibile pe Python Contracara

Există câteva metode importante disponibile cu Counter, iată lista acestora:

  • elemente() : Această metodă vă va returna toate elementele cu număr >0. Elementele cu 0 sau -1 nu vor fi returnate.
  • cele mai_comun(valoare): Această metodă vă va returna cele mai comune elemente din lista Counter.
  • subtract(): Această metodă este folosită pentru a deduce elementele dintr-un alt Contor.
  • Actualizați(): Această metodă este folosită pentru a actualiza elementele dintr-un alt Contor.

Exemplu: elemente()

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)

ieșire:

x
x
x
x
x
y
y

Exemplu: most_common(value)

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)

ieșire:

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

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

ieșire:

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

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

ieșire:

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

Reatribuirea numărurilor în Python

Puteți reatribui numărul de contor, așa cum se arată mai jos:

Considerați că aveți un dicționar ca: {'x': 5, 'y': 12, 'z': -2, 'x1':0}

Puteți modifica numărul elementului după cum se arată mai jos:

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

counter1['y'] = 20

print(counter1)

ieșire: După executare, veți vedea că numărul y este schimbat de la 12 la 20

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

Obțineți și setați numărul de elemente folosind Counter

Pentru a obține numărul unui element folosind Counter, puteți face după cum urmează:

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'

ieșire:

12

Pentru a seta numărul elementului, puteți face după cum urmează:

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)

ieșire:

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

Întrebări frecvente

Counter este o subclasă dict care numără automat elementele hashabile și returnează 0 pentru cheile lipsă în loc să genereze o eroare KeyError. Un dicționar simplu are nevoie de o logică de numărare manuală și generează o eroare KeyError pentru cheile absente.

Funcția most_common(n) returnează cele n elemente cu cel mai mare număr de elemente ca tupluri (element, număr), ordonate de la cel mai frecvent la cel mai puțin frecvent. Apelarea acesteia fără argument returnează fiecare element sortat după număr.

subtract() păstrează numărătoarea zero și negativă după deducere și modifică contorul. Operatorul minus returnează un nou contor și elimină orice element al cărui rezultat este zero sau negativ.

Da. Mai întâi, împărțiți textul, cum ar fi Counter(sentence.split()), pentru a număra cuvinte întregi. Transmiterea unui șir brut numără caracterele individuale, inclusiv spațiile, mai degrabă decât cuvintele.

Folosește sum(counter.values()) pentru a aduna fiecare numărătoare sau Counter.total() în Python 3.10 și versiunile ulterioare. Aceasta indică numărul total de elemente pe care le-a înregistrat contorul.

Contorul suprascrie __missing__, astfel încât orice element absent raportează un număr de 0. Acest lucru vă permite să incrementați chei noi și să interogați elemente în siguranță, fără a verifica mai întâi dacă acestea există.

Asistenții inteligenți artificiali generează cod Counter pentru analiza frecvenței, recomandă Counter în locul buclelor manuale și explică metode precum most_common și elements. De asemenea, convertesc logica de numărare într-un cod bazat pe colecții mai curat și mai rapid.

Da. GitHub Copilot completează automat modelele Counter, defaultdict și OrderedDict dintr-un comentariu care descrie obiectivul dvs. Instrumentele de inteligență artificială Agentic refactorizează buclele de numărare manuală în apeluri Counter și adaugă teste într-un fișier.

Rezumați această postare cu: