Het tellen van meerdere herhalende objecten in één keer is een enorm probleem geweest in het programmeerlandschap. Gelukkig biedt Python verschillende technieken en hulpmiddelen waar mensen hun voordeel mee kunnen doen om dit probleem aan te pakken. De teller die Python biedt vanuit zijn verzamelingen biedt een pythonische, efficiënte en schone oplossing.
Deze subklasse biedt uitstekende telmogelijkheden out of the box, iets waar programmeurs altijd naar op zoek zijn. Begrijpen wat Python teller is en het effectief gebruiken is een handige vaardigheid die Python ontwikkelaars moeten leren.
Hoe Python Objecten Telt
Er zijn tal van situaties waarin mensen het aantal objecten in een gegevensbron moeten tellen om te weten te komen hoe vaak ze voorkomen. Eenvoudig gezegd, u wilt te weten komen wat hun frequentie is. U kunt bijvoorbeeld willen bepalen hoe vaak een bepaald item voorkomt in een reeks waarden of een lijst. Items tellen kan ongelooflijk snel en eenvoudig zijn, vooral als de lijsten kort zijn. Aan de andere kant kan tellen behoorlijk tijdrovend en ingewikkeld worden als er een lange lijst is.
Mensen gebruiken over het algemeen een teller om objecten effectief te tellen. Voor wie het zich afvraagt, een teller is een integer variabele die nul als beginwaarde heeft. Na het tellen moet je de teller die je gebruikt om het aantal keren weer te geven dat een bepaald object in de gegevensbron (invoer) voorkomt, verhogen.
Wanneer je het aantal keren telt dat een voorwerp opduikt, zou het ideaal zijn één enkele teller te gebruiken. Echter, het tellen van een groot aantal objecten is heel anders, omdat je tellers moet maken voor elk uniek object dat je telt. Het gebruik van een Python woordenboek zou een verstandige keuze zijn als je meerdere objecten in een keer wilt tellen.
De sleutels in het woordenboek zullen je helpen elk object op te slaan dat je van plan bent te tellen. Bovendien kunnen de woordenboekwaarden de herhalingen van een object bijhouden, zodat het telproces relatief eenvoudig wordt.
Indien je bijvoorbeeld een woordenboek wil gebruiken voor het tellen van objecten die opeenvolgend zijn, zou je best de hele reeks overlopen en controleren of het object in kwestie in het woordenboek voorkomt voor het initialiseren van het sleutel-waardepaar. Zodra je dat doet, kun je de telling verhogen naargelang de situatie.
Hoe de Python Teller werkt
Zoals eerder vermeld, is de teller in wezen een subklasse van de Python dictionary, speciaal ontworpen om hashable objecten te tellen die aanwezig zijn in het Python programma. Deze dictionary bewaart objecten zoals tellingen en sleutels in de vorm van waarden. Indien je de teller wilt gebruiken, moet je een iterable of een sequentie van verschillende hashable objecten aanbieden, die zal fungeren als een kritisch argument naar de constructor van de klasse.
De teller itereert aanvankelijk met behulp van een invoerreeks, waarna hij telt hoe vaak een bepaald object verschijnt. Laten we nu de gebruikelijke technieken bespreken die programmeurs gebruiken om tellers te construeren:
Tellerbouw
Je kunt meerdere technieken gebruiken om tellerinstanties te ontwikkelen, maar als je hoofddoel is om meerdere objecten tegelijk te tellen, kun je het beste een iterable of sequentie gebruiken om de telling te beginnen.
Objecttellingen bijwerken
Na het verkrijgen van een teller instantie, gebruik het .update() commando om het bij te werken met gloednieuwe tellingen en objecten. In plaats van waarden te vervangen, zorgt de implementatie van .update() die teller levert ervoor dat bestaande tellingen bij elkaar blijven. Het ontwikkelt ook nieuwe paren van sleuteltellingen wanneer dat nodig is.
Programmeurs kunnen het .update() commando gebruiken met zowel mappings als iterables als argumenten. Denk eraan, als je een iterable gebruikt, telt deze methode de items, waarna hij de teller bijwerkt.
Teller met String
Python beschouwt alles als een object, ook een string. Je kunt gemakkelijk een Python string maken door karakters te clizen met dubbele aanhalingstekens. Het is de moeite waard om te onthouden dat, omdat Python geen karaktertypes herkent, het strings als één behandelt, wat in de programmeerwereld substring wordt genoemd.
In het onderstaande voorbeeld wordt een string getoond die de teller heeft gehaald. Naast het retourneren van het dictionary formaat met behulp van het sleutel en waarde paar, houdt het ook rekening met tempo.
uit collections import Teller
my_str = “Welkom bij het leren programmeren!”
print(Counter(mijn_str))
Uitgang:
Teller({‘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})
Teller met woordenboek
Een woordenboek bevat elementen in de vorm van een sleutel en een waardepaar. Je moet deze elementen tussen gekrulde haakjes schrijven. Het woordenboek converteert in hashtable objecten nadat het naar de teller gaat. Ondertussen veranderen de elementen in sleutels. Hieronder staat een voorbeeld om het duidelijker te maken:
uit collections import Teller
dict1 = {‘x’: 4, ‘y’: 2, ‘z’: 2, ‘z’: 2}
print(Teller(dict1))
Uitgang:
Teller({‘x’: 4, ‘y’: 2, ‘z’: 2})
Tegengaan met Tuple
Tuple, in zijn kern, is een groep objecten opgesplitst met de hulp van komma’s aanwezig tussen ronde haakjes. Teller biedt de telling voor elk element binnen de tuple. Tuple wordt een hashtable object nadat het naar de teller is gegaan, terwijl de elementen erin uiteindelijk sleutels worden en de waarden het totale aantal elementen vertegenwoordigen.
Python Teller – Wat zijn de belangrijkste conclusies
In dit stuk hebben we besproken wat Python Counter is en zijn manier om mensen te helpen een groot aantal objecten te tellen die aanwezig zijn in een iterable. Hier zijn de belangrijkste conclusies van wat we geleerd hebben.
- Teller gebruikt dict object, lijsten, string en andere iterables om objecten te tellen, zolang ze hashable zijn
- Je moet het most_common commando gebruiken als je gemeenschappelijke elementen wil vinden binnen collectie-objecten
- Bij het gebruik van de Counter Class kunnen programmeurs fouten tegenkomen als er een niet-hashable element aanwezig is in het container object (bijvoorbeeld: lijst object). Je kunt dit probleem oplossen door een lijst-element te nemen en het om te zetten in Tuple voordat je het doorgeeft aan de Teller klasse