Python Számláló a gyűjteményekben példával
Mi a Python Ellen?
Python A számláló egy olyan tároló, amely tartalmazza a tárolóban lévő egyes elemek számát. A számláló a szótárosztályon belül elérhető alosztály.
A számláló a szótárosztályon belül elérhető alosztály. A Python A számláló eszközzel megszámolhatja a kulcs-érték párokat egy objektumban, amelyet hash tábla objektumnak is neveznek.
Miért érdemes Python Ellen?
Itt vannak a használat fő okai Python 3 Számláló:
- A számláló az adatokat egy rendezetlen gyűjteményben tárolja, akárcsak a hashtable objektumokat. Az itt található elemek a kulcsokat és a számértéket jelentik.
- Lehetővé teszi az iterálható lista tételeinek megszámlálását.
- Az olyan aritmetikai műveletek, mint az összeadás, kivonás, metszés és egyesítés, könnyen végrehajthatók a számlálón.
- Egy számláló egy másik számláló elemeit is meg tudja számolni
Bevezetés a Python Számláló
Python A Counter bemenetként egy listát, sorszámot, szótárt, karakterláncot vesz be, amelyek mindegyike iterálható objektum, és olyan kimenetet ad, amely tartalmazza az egyes elemek számát.
Syntax:
Counter(list)
Vegye figyelembe, hogy a következő listával rendelkezik:
list1 = ['x','y','z','x','x','x','y', 'z']
A listának x, y és z elemei vannak. Ha a Counter-t használja ezen a listán, akkor megszámolja, hogy x, y és z hányszor van jelen. Ha a számlálót a list1-en használják, a kimenetnek valami ilyesminek kell lennie:
Counter({'x': 4, 'y': 2, 'z': 2})
Tehát x számlálója 4, y 2 és z 2.
A Counter használatához először importálnunk kell az alábbi példában látható módon:
from collections import Counter
Íme egy egyszerű példa, amely bemutatja a Counter modul működését.
from collections import Counter list1 = ['x','y','z','x','x','x','y', 'z'] print(Counter(list1))
output:
Counter({'x': 4, 'y': 2, 'z': 2})
Számláló húrral
In Python, minden objektum és a karakterlánc is objektum. Python húr egyszerűen létrehozható úgy, hogy a karaktereket dupla idézőjelbe zárja. Python nem támogatja a karaktertípust. Ezeket 1 hosszúságú karakterláncokként kezeli, és részkarakterláncnak is tekinti.
Az alábbi példában egy karakterláncot adunk át a Számlálónak. Szótárformátumot ad vissza kulcs/érték párral, ahol a kulcs az elem, az érték pedig a szám. A teret is elemnek tekinti, és megadja a karakterláncban lévő szóközök számát.
Példa:
from collections import Counter my_str = "Welcome to Guru99 Tutorials!" print(Counter(my_str))
output:
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})
Számláló listával
A lista egy iterálható objektum, amelynek elemei szögletes zárójelben vannak.
A lista elemei, amikor megadják a számlálónak, hashable objektummá lesznek konvertálva, ahol az elemek kulcsok lesznek, az értékek pedig a megadott lista elemeinek száma.
Például ['x', 'y', 'z', 'x', 'x', 'x', 'y', 'z']. Ha megadja a listának a számlálót, akkor a lista minden elemének számát megadja.
from collections import Counter list1 = ['x','y','z','x','x','x','y','z'] print(Counter(list1))
output:
Counter({'x': 4, 'y': 2, 'z': 2})
Számláló szótárral
A szótár elemei kulcs/érték párok, és zárójelek közé vannak írva.
Miután a szótárt a számlálónak adtuk, a rendszer egy hashable objektummá alakítja, ahol az elemek kulcsokká válnak, az értékek pedig a megadott szótár elemeinek száma.
Például: {'x': 4, 'y': 2, 'z': 2, 'z': 2}. A Számláló funkció megpróbálja megkeresni az egyes kulcsok számát az adott szótárban.
from collections import Counter dict1 = {'x': 4, 'y': 2, 'z': 2, 'z': 2} print(Counter(dict1))
output:
Counter({'x': 4, 'y': 2, 'z': 2})
Számláló Tuple-vel
A Tuple kerek zárójelben vesszővel elválasztott objektumok gyűjteménye. A Counter megadja a megadott sor egyes elemeinek számát.
Miután a leíró megadásra kerül a számlálónak, egy hashtable objektummá alakul, ahol az elemek kulcsokká lesznek, az értékek pedig a megadott leíró elemeinek száma.
from collections import Counter tuple1 = ('x','y','z','x','x','x','y','z') print(Counter(tuple1))
output:
Counter({'x': 4, 'y': 2, 'z': 2})
Számlálók elérése, inicializálása és frissítése
Számláló inicializálása
A számláló inicializálható karakterlánc érték, lista, szótár vagy sor átadásával az alábbiak szerint:
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
Egy üres számlálót is inicializálhat az alábbiak szerint:
from collections import Counter _count = Counter()
Számláló frissítése
A számlálóhoz értékeket adhat hozzá az update() metódussal.
_count.update('Welcome to Guru99 Tutorials!')
A végső kód a következő:
from collections import Counter _count = Counter() _count.update('Welcome to Guru99 Tutorials!') print(_count)
A kimenet:
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})
Hozzáférés a számlálóhoz
Az értékek számlálóból való lekéréséhez a következőket teheti:
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]))
output:
u : 3 G : 1 u : 3 r : 2 u : 3
Elem törlése a számlálóból
Ha törölni szeretne egy elemet a számlálóból, használja a del -et, az alábbi példában látható módon:
Példa:
from collections import Counter dict1 = {'x': 4, 'y': 2, 'z': 2} del dict1["x"] print(Counter(dict1))
output:
Counter({'y': 2, 'z': 2})
Aritmetikai művelet bekapcsolva Python Számláló
Az aritmetikai műveletek, mint az összeadás, kivonás, metszés és egyesítés, elvégezhetők a számlálón az alábbi példában látható módon:
Példa:
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)
output:
Counter({'y': 7, 'x': 4, 'z': 2}) Counter({'x1': 12, 'x': 4}) Counter({'y': 2}) Counter({'y': 5, 'x': 4, 'z': 4})
Elérhető módszerek a Python Számláló
A Counter segítségével elérhető néhány fontos módszer, ezek listája itt található:
- elemek() : Ez a módszer visszaadja az összes olyan elemet, amelynek száma >0. A 0 vagy -1 értékű elemeket nem adjuk vissza.
- most_common(érték): Ez a módszer visszaadja a leggyakoribb elemeket a Számláló listából.
- kivon(): Ezzel a módszerrel levonják az elemeket egy másik számlálóból.
- frissítés(): Ez a módszer egy másik számláló elemeinek frissítésére szolgál.
Példa: 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)
output:
x x x x x y y
Példa: most_common(érték)
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)
output:
[('y', 12), ('x', 5)] [('y', 12), ('x', 5), ('x1', 0), ('z', -2)]
Példa: kivonás()
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)
output:
Counter({'y': 7, 'x': 3, 'x1': 0, 'z': -2})
Példa: 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)
output:
Counter({'y': 17, 'x': 7, 'x1': 0, 'z': -2})
Számlák újra hozzárendelése Python
Újra hozzárendelheti a számlálók számát az alábbiak szerint:
Tegyük fel, hogy van egy szótárad: {'x': 5, 'y': 12, 'z': -2, 'x1':0}
Módosíthatja az elemek számát az alábbiak szerint:
from collections import Counter counter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0}) counter1['y'] = 20 print(counter1)
output: A végrehajtás után látni fogja, hogy az y szám 12-ről 20-ra módosult
Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2})
Szerezze meg és állítsa be az elemek számát a Counter segítségével
Egy elem számának kiszámításához a Counter segítségével a következőket teheti:
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'
output:
12
Az elemek számának beállításához a következőket teheti:
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)
output:
12 Counter({'y': 20, 'y1': 10, 'x': 5, 'x1': 0, 'z': -2})
Összegzésként
- A számláló egy olyan tároló, amely tartalmazza a tárolóban lévő egyes elemek számát.
- A Counter a szótárosztályon belül elérhető alosztály.
- az Python A számláló eszközzel megszámolhatja a kulcs-érték párokat egy objektumban, amelyet hashtable objektumnak is neveznek.
- A számláló az adatokat egy rendezetlen gyűjteményben tárolja, akárcsak a hashtable objektumokat. Az itt található elemek a kulcsokat és a számértéket jelentik.
- Lehetővé teszi az iterálható lista tételeinek megszámlálását.
- Az olyan aritmetikai műveletek, mint az összeadás, kivonás, metszés és egyesítés, könnyen végrehajthatók a számlálón.
- Egy számláló egy másik számláló elemeit is meg tudja számolni.
- A számlálókon elérhető fontos módszerek a következők: elements() , most_common(value), subtract() és update().
- A számláló karakterláncon, listán, szótáron és soron használható.