Python Počítadlo ve sbírkách s příkladem

Co je to Python Čelit?

Python Počítadlo je kontejner, který bude obsahovat počet všech prvků přítomných v kontejneru. Čítač je podtřída dostupná uvnitř třídy slovníku.

Čítač je podtřída dostupná uvnitř třídy slovníku. Pomocí Python Nástroj počítadlo, můžete spočítat páry klíč-hodnota v objektu, nazývaném také objekt hashovací tabulky.

Proč používat Python Čelit?

Zde jsou hlavní důvody pro použití Python 3 Počítadlo:

  • Počítadlo uchovává data v neuspořádané kolekci, stejně jako hashovatelné objekty. Prvky zde představují klíče a počet jako hodnoty.
  • Umožňuje vám počítat položky v iterovatelném seznamu.
  • Na čítači lze snadno provádět aritmetické operace jako sčítání, odčítání, průnik a sjednocení.
  • Počítadlo může také počítat prvky z jiného žetonu

Úvod do Python Counter

Python Počítadlo přijme na vstupu seznam, n-tici, slovník, řetězec, což jsou všechny iterovatelné objekty, a poskytne vám výstup, který bude mít počet každého prvku.

Syntaxe:

Counter(list)

Zvažte, že máte následující seznam:

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

Seznam obsahuje prvky x , y a z. Když v tomto seznamu použijete Counter , bude počítat, kolikrát je x , y a z přítomno. Výstup, pokud je na list1 použit čítač, by měl být něco jako:

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

Takže máme počet x jako 4, y jako 2 a z jako 2.

Abychom mohli používat Counter, musíme jej nejprve importovat, jak je znázorněno v níže uvedeném příkladu:

from collections import Counter

Zde je jednoduchý příklad, který ukazuje fungování modulu Counter.

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

Výstup:

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

Počítadlo s provázkem

In Python, vše je objekt a řetězec je také objekt. Python šňůra lze vytvořit jednoduše uzavřením znaků do dvojitých uvozovek. Python nepodporuje typ postavy. S těmi se zachází jako s řetězci délky jedna, které jsou také považovány za podřetězec.

V níže uvedeném příkladu je řetězec předán do Counter. Vrací formát slovníku s párem klíč/hodnota, kde klíč je prvek a hodnota je počet. Také považuje mezeru za prvek a udává počet mezer v řetězci.

Příklad:

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

Výstup:

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

Počítadlo se seznamem

Seznam je iterovatelný objekt, který má své prvky v hranatých závorkách.

Prvky v seznamu, když jsou dány do čítače, budou převedeny na hashtable objekty, kde se prvky stanou klíči a hodnoty budou počtem prvků z daného seznamu.

Například ['x','y','z','x','x','x','y','z']. Jakmile seznamu dáte Počítadlo, zobrazí se vám počet každého prvku v seznamu.

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

Výstup:

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

Počítadlo se slovníkem

Slovník obsahuje prvky jako pár klíč/hodnota a jsou zapsány ve složených závorkách.

Jakmile je slovník předán Counteru, bude převeden na hashtable objekty, kde se prvky stanou klíči a hodnoty budou představovat počet prvků z daného slovníku.

Například: {'x': 4, 'y': 2, 'z': 2, 'z': 2}. Funkce Counter se pokusí najít počet každého klíče v daném slovníku.

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

Výstup:

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

Počítadlo s Tuple

Tuple je sbírka objektů oddělených čárkami uvnitř kulatých závorek. Počítadlo vám dá počet každého z prvků v dané n-tici.

Jakmile je n-tice přidělena čítači, bude převedena na hashtable objekt, kde se prvky stanou klíči a hodnoty budou počtem prvků z dané n-tice.

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

Výstup:

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

Přístup, inicializace a aktualizace čítačů

Inicializace počítadla

Čítač lze inicializovat předáním hodnoty řetězce, seznamu, slovníku nebo n-tice, jak je uvedeno níže:

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

Můžete také inicializovat prázdný čítač, jak je znázorněno níže:

from collections import Counter
_count = Counter()

Aktualizace počítadla

Hodnoty do čítače můžete přidat pomocí metody update().

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

Konečný kód je:

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

Výstup je:

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

Přístup k počítadlu

Chcete-li získat hodnoty z počítadla, můžete provést následující:

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ýstup:

u : 3

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

Odstranění prvku z počítadla

Chcete-li odstranit prvek z Counter, můžete použít del , jak je znázorněno v příkladu níže:

Příklad:

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

Výstup:

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

Aritmetická operace zapnuta Python Counter

Aritmetické operace, jako je sčítání, odčítání, průnik a sjednocení, lze provádět na čítači, jak je znázorněno v příkladu níže:

Příklad:

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ýstup:

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

Metody dostupné na Python Counter

V aplikaci Counter jsou k dispozici některé důležité metody, zde je jejich seznam:

  • Prvky() : Tato metoda vám vrátí všechny prvky s počtem >0. Prvky s počtem 0 nebo -1 nebudou vráceny.
  • nejběžnější(hodnota): Tato metoda vám vrátí nejběžnější prvky ze seznamu Counter.
  • odčítat(): Tato metoda se používá k odečtení prvků z jiného čítače.
  • Aktualizace(): Tato metoda se používá k aktualizaci prvků z jiného čítače.

Příklad: prvky()

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ýstup:

x
x
x
x
x
y
y

Příklad: 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)

Výstup:

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

Příklad: odečíst()

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ýstup:

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

Příklad: 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ýstup:

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

Přeřazení počtů v Python

Počty počítadla můžete znovu přiřadit, jak je uvedeno níže:

Zvažte, že máte slovník jako: {'x': 5, 'y': 12, 'z': -2, 'x1':0}

Počet prvků můžete změnit, jak je uvedeno níže:

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

counter1['y'] = 20

print(counter1)

Výstup: Po provedení uvidíte, že počet y se změnil z 12 na 20

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

Získejte a nastavte počet prvků pomocí Counter

Chcete-li získat počet prvku pomocí Counter, můžete provést následující:

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ýstup:

12

Chcete-li nastavit počet prvků, můžete provést následující:

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ýstup:

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

Shrnutí

  • Počítadlo je kontejner, který bude obsahovat počet všech prvků přítomných v kontejneru.
  • Counter je podtřída dostupná uvnitř třídy slovníku.
  • Za použití Python Nástroj Counter, můžete spočítat páry klíč-hodnota v objektu, který se také nazývá hashtable objekt.
  • Počítadlo uchovává data v neuspořádané kolekci, stejně jako hashovatelné objekty. Prvky zde představují klíče a počet jako hodnoty.
  • Umožňuje vám počítat položky v iterovatelném seznamu.
  • Na čítači lze snadno provádět aritmetické operace jako sčítání, odčítání, průnik a sjednocení.
  • Počítadlo může také počítat prvky z jiného žetonu.
  • Důležité metody dostupné na Counteru jsou elements() , most_common(value), subtract() a update().
  • Čítač lze použít pro řetězec, seznam, slovník a n-tici.