Coursera Learner working on a presentation with Coursera logo and
Coursera Learner working on a presentation with Coursera logo and

In het Python programma gebruiken programmeurs vaak de for-lus om een lus te maken op een iterabel object. Wat dit in essentie betekent, is dat je geen telvariabele nodig hebt om items binnen de iterable te benaderen. In bepaalde gevallen hebben programmeurs echter een variabele nodig die bij elke iteratie van de lus kan veranderen. In plaats van variabelen te creëren en te verhogen, kan men altijd de enumerate () functie gebruiken om een teller te krijgen, samen met een waarde tegelijk.

Itereren met de lussen aanwezig in Python

Python’s for-lus gebruikt iteratie op basis van verzameling, wat betekent dat Python de neiging heeft om een item toe te wijzen aan lusvariabelen ( van iterables) in elke iteratie. Hier is een voorbeeld.

De waarden in dit voorbeeld zijn een lijst die 3 strings bevat, die toevallig de alfabetten a, b en c zijn. In het Python programma worden lijsten beschouwd als een variant van iterabele objecten. De lusvariabele in de for-lus is value. Het is ook de moeite waard in gedachten te houden dat bij elke iteratie van de lus, waarde de neiging heeft te worden ingesteld op het volgende item en het komt van de opdrachtwaarden.

Daarna moet je de waarde op het scherm beginnen af te drukken. Een van de belangrijkste voordelen van iteraties op basis van verzamelingen is dat het je vrijwaart van fouten die vaak voorkomen in andere programmeertalen.

Laten we zeggen dat je van plan bent om naast de waarde ook de index van het item op het scherm af te drukken bij elke iteratie. Welnu, een effectieve manier om deze taak te benaderen zou zijn om een variabele te vormen voor het opslaan van de index. Als je dat eenmaal gedaan hebt, kun je het bij elke iteratie bijwerken, wat er ongeveer zo uit zal zien:

In het bovenstaande voorbeeld is de index in wezen een geheel getal dat je positie in de lijst bijhoudt. Bij elke iteratie van de lus, zal je de index lang met de waarde afdrukken. De laatste stap in de lus zal je vragen om het nummer in de index te updaten (zorg ervoor dat je het met één update). Je zal een bug opmerken als je er niet in slaagt de index bij elke iteratie bij te werken. Dit is hoe het eruit zou kunnen zien

In het voorbeeld zul je zien dat elke index op elke iteratie op 0 blijft staan. Dit komt omdat hun waarde niet is bijgewerkt door een code aan het einde van de lus. Het opsporen van een bug als deze kan een ongelooflijke uitdaging zijn, vooral in gecompliceerde en langere lussen.
Een effectieve manier om dit probleem aan te pakken is het combineren van range() en len() voor het maken van een index. Deze tactiek wordt vaak aanbevolen omdat het je helpt om automatisch indexen te maken, zodat je niet hoeft te onthouden wanneer je de update moet maken.

Gebruik enumerate() in Python op de juiste manier

Programmeurs kunnen gebruik maken van opsomming() binnen een enkele lus, net zoals ze gebruik zouden maken van het initiële iterable object. In plaats van het toevoegen van de iterable direct na de in aanwezig in for, zul je het in de haakjes van het enumerate() commando zetten. Bovendien moet je kleine veranderingen aanbrengen in de lus variabele. Hier is een voorbeeld dat toont hoe dit er zal uitzien:

Nadat je enumerate() hebt ingetypt, krijg je 2 lusvariabelen van de functie, die zullen bestaan uit de telling van de huidige iteratie samen met de waarde van het item van de huidige iteratie.

Net als bij een gewone for-lus kun je de lusvariabelen een naam geven. In het voorbeeld hierboven werden de woorden value en count gebruikt. Je zou ze echter ook v en i kunnen noemen, of een andere naam zolang die maar geldig is in Python.

Wanneer je de enumerate () functie gebruikt, hoef je niet te onthouden wanneer je het item in de iterable opent. Wat het nog beter maakt, is dat je niet hoeft te onthouden hoe je de index op het einde van de lus moet verhogen. Python zorgt voor bijna alles automatisch, zodat je je geen zorgen hoeft te maken over het onthouden van essentiële details.

Belangrijke opmerking

Het gebruik van de 2 variabelen van de lus, waarde en telling, gescheiden door een komma, toont het uitpakken van argumenten. Dit is een ongelooflijk krachtige functie in Python.

De opsomming() in Python heeft een extra argument dat programmeurs kunnen gebruiken om de beginwaarde van de telling te regelen. De startwaarde is standaard nul. Dit komt omdat Python’s reeksen geïndexeerd zijn en ze allemaal beginnen met 0. Met andere woorden, wanneer je van plan bent om het initiële element van een lijst op te halen, zorg er dan voor dat je index 0 kiest.
Oefenen met opsommen() in Python op de juiste manier

Programmeurs kunnen de enumerate() functie gebruiken wanneer ze het item en de telling willen gebruiken binnen een lus. Het is de moeite waard om in gedachten te houden dat het gebruik van opsomming() in wezen de totale telling verhoogt met 1 bij elke iteratie. Dat gezegd zijnde, zal dit niet te veel inflexibiliteit veroorzaken. In feite kun je heel flexibel blijven omdat de graaf een gewoon geheel getal in Python is, dat je op meer dan één manier kunt gebruiken.

De interne werking van opsommen() in Python

Om een duidelijker idee te krijgen van de manier waarop opsomming() eigenlijk werkt, zou het het beste zijn om de versie die je hebt met Python te implementeren. Er zullen twee kritieke vereisten zijn in je enumerate() versie. Hier zijn ze:

– Begin met het accepteren van een beginwaarde en een iterable als argumenten
– Stuur een tuple terug, en zorg ervoor dat het de huidige count waarde heeft samen met het item geassocieerd met de iterable

In het bovenstaande voorbeeld gebruikt my_enumerate 2 argumenten, start en sequence, waarbij nul de standaardwaarde van start is. Wat de functiedefinitie betreft, moet je n gebruiken als de waarde voor start terwijl je een for-lus uitvoert op sequentie. Voor elk elem in de sequentie moet je de controle overdragen naar de respectieve plaats. Na deze stap stuurt u de huidige waarden van elem en n terug. Verhoog tenslotte het n commando om je voor te bereiden op de komende iteratie.

Als je wilt opsommen in Python als een expert programmeur, is het van vitaal belang om de grondbeginselen te kennen. De informatie en voorbeelden in dit stuk zullen je een duidelijk richtingsgevoel geven over hoe je op de juiste manier moet opsommen.