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

⚡ Chytré shrnutí

Python Counter je podtřída slovníku z modulu collections, která počítá, jak často se každý prvek objevuje v iterovatelném objektu. Přijímá řetězce, seznamy, n-tice a slovníky a poté podporuje aritmetické operace, operace most_common a aktualizace pro rychlé úlohy počítání.

  • 🔢 Počítací: Funkce Counter počítá výskyty každého prvku a vrací je jako páry klíč-počet.
  • 📥 Libovolný iterovatelný: Jako vstup přijímá řetězce, seznamy, n-tice a slovníky.
  • Aritmetický: Čítače podporují sčítání a podčítánítracoperace sjednocení, průniku a sjednocení.
  • 🏆 nejběžnější(): Tato metoda vrací prvky s nejvyšší frekvencí seřazené podle pořadí.
  • 🔄 aktualizace: aktualizace() a podřízený příkaztracFunkce t() upravuje počty z jiného čítače nebo iterovatelné třídy.
  • 🤖 Pomoc s umělou inteligencí: Asistenti s umělou inteligencí generují kód čítače a navrhují ho pro úlohy frekvence a počítání slov.

Python Počítadlo ve sbírkách

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.
  • Aritmetické operace jako sčítání, odčítánítracSjednocení, průnik a sjednocení lze snadno provést na čítači.
  • 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 sčítání, oddělovánítracSjednocení, průnik a sjednocení lze provést na čítači, jak je znázorněno v níže uvedeném příkladu:

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.
  • náhradníktract(): 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: 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)

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

Nejčastější dotazy

Counter je podtřída slovníku, která automaticky počítá hašovatelné položky a vrací 0 pro chybějící klíče namísto vyvolání KeyError. Prostý slovník vyžaduje logiku ručního počítání a vyvolá KeyError pro chybějící klíče.

Funkce most_common(n) vrací n prvků s nejvyšším počtem jako (element, count) n-tic, seřazených od nejčastější po nejméně častou. Volání bez argumentu vrací všechny prvky seřazené podle počtu.

náhradníktracFunkce t() po odečtení uchovává nulové a záporné počty a mění čítač na místě. Operátor mínus vrací nový čítač a odstraňuje všechny prvky, jejichž výsledek je nula nebo záporný.

Ano. Nejprve rozdělte text, například pomocí Counter(sentence.split()), aby se počítala celá slova. Předání nezpracovaného řetězce počítá jednotlivé znaky, včetně mezer, nikoli slova.

Pro sečtení všech počtů použijte sum(counter.values()) nebo Counter.total() v Python 3.10 a novější. Toto udává celkový počet prvků, které čítač sečetl.

Čítač přepíše __missing__, takže jakýkoli chybějící prvek hlásí počet 0. To umožňuje bezpečně zvyšovat počet nových klíčů a dotazovat prvky, aniž byste nejprve ověřovali, zda existují.

Asistenti umělé inteligence generují kód Counter pro frekvenční analýzu, doporučují Counter namísto manuálních smyček a vysvětlují metody jako most_common a elements. Také převádějí logiku počítání do čistšího a rychlejšího kódu založeného na kolekcích.

Ano. GitHub Copilot automaticky doplňuje vzory Counter, defaultdict a OrderedDict z komentáře popisujícího váš cíl. Nástroje umělé inteligence Agentic refaktorují smyčky ručního počítání do volání Counter a přidávají testy napříč souborem.

Shrňte tento příspěvek takto: