Vad är Python Counter?
Python Counter är en behållare som håller räkningen av varje element som finns i behållaren. Räknaren är en underklass tillgänglig i ordboksklassen.
Räknaren är en underklass som finns inom ordboksklassen. Med hjälp av Python Counter-verktyget kan du räkna nyckel-värde-paren i ett objekt, även kallat ett hash-tabellobjekt.
Varför använda Python Counter?
Här är viktiga skäl för att använda Python 3 Counter:
- Räknaren lagrar data i en oordnad samling, precis som hashtabla objekt. Elementen här representerar tangenterna och räknas som värden.
- Det låter dig räkna objekten i en iterabel lista.
- Aritmetiska operationer som addition, subtraktion, korsning och union kan enkelt utföras på en räknare.
- En räknare kan också räkna element från en annan räknare
I denna Python-handledning lär du dig:
- Vad är Python Counter?
- Varför använda Python Counter?
- Introduktion till Python Counter
- Räknare med sträng
- Räknare med Lista
- Räknare med ordbok
- Räknare med Tuple
- Åtkomst till, initialisering och uppdatering av räknare
- Ta bort ett element från Counter
- Aritmetisk operation på Python Counter
- Metoder tillgängliga på Python Counter
- Omfördelning av räkningar i Python
- Få och ställ in antalet Elements med Counter
Introduktion till Python Counter
Python Counter tar in inmatning av en lista, tupel, ordbok, sträng, som alla är iterabla objekt, och det ger dig utdata som kommer att ha antalet element.
Syntax:
Counter(list)
Tänk på att du har en följande lista:
list1 = ['x','y','z','x','x','x','y', 'z']
Listan har elementen x, y och z. När du använder Counter i den här listan räknar den hur många gånger x, y och z finns. Utdata om räknare används på list1 bör vara ungefär som:
Counter({'x': 4, 'y': 2, 'z': 2})
Så vi har antalet x som 4, y som 2 och z som 2.
För att kunna använda Counter måste vi först importera det enligt nedanstående exempel:
from collections import Counter
Här är ett enkelt exempel som visar hur Counter-modulen fungerar.
from collections import Counterlist1 = ['x','y','z','x','x','x','y', 'z']print(Counter(list1))
Produktion:
Counter({'x': 4, 'y': 2, 'z': 2})
Räknare med sträng
I Python är allt ett objekt och sträng är också ett objekt. Python-sträng kan skapas helt enkelt genom att bifoga tecken i det dubbla citatet. Python stöder inte en karaktärstyp. Dessa behandlas som strängar av längd ett, även betraktade som underlag.
I exemplet nedan skickas en sträng till Counter. Det returnerar ordboksformat, med nyckel / värdepar där nyckeln är elementet och värdet är räkningen. Det betraktar också rymden som ett element och ger räkningen av mellanslag i strängen.
Exempel:
from collections import Countermy_str = "Welcome to Guru99 Tutorials!"print(Counter(my_str))
Produktion:
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})
Räknare med Lista
En lista är ett iterabelt objekt som har sina element inom hakparenteser.
Elementen i listan när de ges till räknaren kommer att konverteras till ett hashtabelt objekt där elementen blir nycklar och värdena kommer att räkna med elementen från listan.
Till exempel ['x', 'y', 'z', 'x', 'x', 'x', 'y', 'z']. När du har gett listan räknaren kommer den att ge dig räkningen av varje element i listan.
from collections import Counterlist1 = ['x','y','z','x','x','x','y','z']print(Counter(list1))
Produktion:
Counter({'x': 4, 'y': 2, 'z': 2})
Räknare med ordbok
En ordbok har element som nyckel / värde-par och de skrivs inom lockiga parenteser.
När ordboken har givits till räknaren kommer den att konverteras till ett hashtabelt objekt där elementen blir nycklar och värdena kommer att räknas av elementen från den angivna ordboken.
Till exempel: {'x': 4, 'y': 2, 'z': 2, 'z': 2}. Räknarfunktionen försöker hitta räkningen för var och en av nycklarna i den angivna ordboken.
from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2, 'z': 2}print(Counter(dict1))
Produktion:
Counter({'x': 4, 'y': 2, 'z': 2})
Räknare med Tuple
Tuple är en samling objekt som är åtskilda av komma inom runda parenteser. Counter ger dig räkningen av var och en av elementen i den angivna tupeln.
När tupeln ges till räknaren kommer den att konverteras till ett hashtabelt objekt där elementen blir nycklar och värdena kommer att räkna elementen från tupeln som ges.
from collections import Countertuple1 = ('x','y','z','x','x','x','y','z')print(Counter(tuple1))
Produktion:
Counter({'x': 4, 'y': 2, 'z': 2})
Åtkomst till, initialisering och uppdatering av räknare
Initierar räknaren
En räknare kan initieras genom att skicka strängvärde, lista, ordlista eller tuple enligt bilden nedan:
from collections import Counterprint(Counter("Welcome to Guru99 Tutorials!")) #using stringprint(Counter(['x','y','z','x','x','x','y', 'z'])) #using listprint(Counter({'x': 4, 'y': 2, 'z': 2})) #using dictionaryprint(Counter(('x','y','z','x','x','x','y', 'z'))) #using tuple
Du kan också initiera en tom räknare enligt nedan:
from collections import Counter_count = Counter()
Uppdaterar räknaren
Du kan lägga till värden i räknaren med uppdateringsmetoden ().
_count.update('Welcome to Guru99 Tutorials!')
Den slutliga koden är:
from collections import Counter_count = Counter()_count.update('Welcome to Guru99 Tutorials!')print(_count)
Utgången är:
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})
Åtkomst till räknare
För att få värdena från räknaren kan du göra på följande sätt:
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]))
Produktion:
u : 3G : 1u : 3r : 2u : 3
Ta bort ett element från Counter
För att radera ett element från Counter kan du använda del, som visas i exemplet nedan:
Exempel:
from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2}del dict1["x"]print(Counter(dict1))
Produktion:
Counter({'y': 2, 'z': 2})
Aritmetisk operation på Python Counter
Aritmetisk operation som addition, subtraktion, korsning och union kan göras på en räknare som visas i exemplet nedan:
Exempel:
from collections import Countercounter1 = Counter({'x': 4, 'y': 2, 'z': -2})counter2 = Counter({'x1': -12, 'y': 5, 'z':4 })#Additioncounter3 = counter1 + counter2 # only the values that are positive will be returned.print(counter3)#Subtractioncounter4 = 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 outputprint(counter4)#Intersectioncounter5 = counter1 & counter2 # it will give all common positive minimum values from counter1 and counter2print(counter5)#Unioncounter6 = counter1 | counter2 # it will give positive max values from counter1 and counter2print(counter6)
Produktion:
Counter({'y': 7, 'x': 4, 'z': 2})Counter({'x1': 12, 'x': 4})Counter({'y': 2})Counter({'y': 5, 'x': 4, 'z': 4})
Metoder tillgängliga på Python Counter
Det finns några viktiga metoder tillgängliga med Counter, här är listan över samma:
- element () : Den här metoden returnerar alla element med antal> 0. Element med 0 eller -1 räknas inte tillbaka.
- most_common (värde): Denna metod ger dig de vanligaste elementen från Counter-listan.
- subtrahera (): Denna metod används för att dra av elementen från en annan räknare.
- update (): Denna metod används för att uppdatera elementen från en annan Counter.
Exempel: element ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 2, 'z': -2, 'x1':0})_elements = counter1.elements() # will give you all elements with positive value and count>0for a in _elements:print(a)
Produktion:
xxxxxyy
Exempel: most_common (värde)
from collections import Countercounter1 = 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)
Produktion:
[('y', 12), ('x', 5)][('y', 12), ('x', 5), ('x1', 0), ('z', -2)]
Exempel: subtrahera ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.subtract(counter2)print(counter1)
Produktion:
Counter({'y': 7, 'x': 3, 'x1': 0, 'z': -2})
Exempel: uppdatera ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.update(counter2)print(counter1)
Produktion:
Counter({'y': 17, 'x': 7, 'x1': 0, 'z': -2})
Omfördelning av räkningar i Python
Du kan tilldela antalet räknare på nytt enligt nedan:
Tänk på att du har en ordbok som: {'x': 5, 'y': 12, 'z': -2, 'x1': 0}
Du kan ändra antalet element som visas nedan:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter1['y'] = 20print(counter1)
Output: Efter körningen ser du att y-antalet ändras från 12 till 20
Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2})
Få och ställ in antalet Elements med Counter
För att få räkningen av ett element med Counter kan du göra enligt följande:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})print(counter1['y']) # this will give you the count of element 'y'
Produktion:
12
För att ställa in antalet element kan du göra på följande sätt:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})print(counter1['y'])counter1['y'] = 20counter1['y1'] = 10print(counter1)
Produktion:
12Counter({'y': 20, 'y1': 10, 'x': 5, 'x1': 0, 'z': -2})
Sammanfattning:
- Counter är en behållare som håller räkningen av vart och ett av elementen som finns i behållaren.
- Counter är en underklass tillgänglig i ordboksklassen.
- Med hjälp av Python Counter-verktyget kan du räkna nyckel-värdeparen i ett objekt, även kallat ett hashtabelt objekt.
- Räknaren lagrar data i en oordnad samling, precis som hashtabla objekt. Elementen här representerar tangenterna och räknas som värden.
- Det låter dig räkna objekten i en iterabel lista.
- Aritmetiska operationer som addition, subtraktion, korsning och union kan enkelt utföras på en räknare.
- En räknare kan också räkna element från en annan räknare.
- De viktiga metoderna som finns tillgängliga på en räknare är element (), most_common (värde), subtraherar () och uppdatering ().
- En räknare kan användas på en sträng, lista, ordlista och tuple.