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ó.