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

