Brug Enumerate Function i Python til at oprette loops med tællere

Use Enumerate Function Python Create Loops With Counters



Denne artikel vil forklare brugen af ​​den opregnede funktion, der er tilgængelig i Pythons standardmodulbibliotek. Opregningsfunktionen giver dig mulighed for at tildele et indeks eller tælle til elementer i ethvert gentageligt objekt. Du kan derefter implementere yderligere logik på dem, da du får adgang til både værdier og et antal, der er knyttet til det.

Syntaks og grundeksempel

Hvis du har brugt a for loop på andre programmeringssprog, især C -sprog og andre sprog med syntaks i C -stil, har du muligvis angivet et startindeks i loopet. Til reference er her, hvordan en for loop ser ud på C og andre sprog med lignende syntaks:







til (intjeg= 0;jeg< 10;jeg++)

{

printf ('%d n',jeg);

}

Loop -sætningen initialiserer en variabel med en værdi på nul, kontrollerer, at den er mindre end en tærskel og øger den med en tælling efter evaluering af logik inde i loop -blokken (hvis stopbetingelsen er opfyldt). På denne måde kan du bruge et indeks og tildele det til alle objekter, der refereres til i din loop -blok. Til sammenligning ser her, hvordan en for loop med samme resultat ser ud i Python:



tiljegi rækkevidde(0, 10):

Print (jeg)

Områdefunktionen i Python giver dig mulighed for at angive en rækkefølge med et nummerinterval, der har et standardtrin på 1. Du kan ændre trinværdien ved at angive et tredje argument. Det andet argument i områdefunktionen bruges til at indstille tærsklen for stoptilstand. Begge kodeprøver producerer følgende output:



0

1

2

3

4

5

6

7

8

9

Disse sløjfer fungerer fint, hvis du bare vil generere en nummersekvens og knytte dem til en vis logik inde i loop -sætningen. Du skal dog muligvis bruge en anden indlejret sløjfe eller bruge udbyttefunktionen på en hvilken som helst gentagen type til at tildele dem en slags sporbar tælling. Opregningsmetoden gør det let at tildele indekser til iterables i en sætning og eliminerer derved behovet for at køre flere indlejrede sløjfer. Tag et kig på denne kodeeksempel:





tal= ['nul', 'en', 'to', 'tre', 'fire', 'fem']

opregnede_numre= opført(tal)

tilindeks,vareienumerated_numbers:

Print (indeks,vare)

Den første sætning definerer en ny variabel kaldet tal og tildeler den en iterable (listetype). Den anden sætning viser brugen af ​​optællingsfunktionen, hvor du leverer en iterable til den som et obligatorisk argument. Den tredje sætning konverterer variablen enumerated_numbers til et listetypeobjekt. Som standard genererer optællingsfunktionen et optalt typeobjekt og ikke en iterabel type, så du skal konvertere det. Efter at have kørt ovenstående kodeeksempel, skal du få følgende output:

[(0, 'nul'), (1, 'en'), (2, 'to'), (3, 'tre'), (4, 'fire'), (5, 'fem')]

Opregningsfunktionen tildeler et element til hvert element i en iterabel type og opretter tupler med parrede værdier. Som standard starter tællingen fra nul.



Nu hvor du har tildelt et nummer til hvert element i en iterabel type, kan du nemt gå over det uden at skrive indlejrede udsagn:

tal= ['nul', 'en', 'to', 'tre', 'fire', 'fem']

opregnede_numre= opført(tal)

tilindeks,vareienumerated_numbers:

Print (indeks,vare)

Kodeeksemplet, der er angivet ovenfor, producerer følgende output:

0 nul

1 en

2 to

3 tre

4 fire

5 fem

Du kan gøre koden kortere ved at bruge enumerate function inline, som vist i eksemplet herunder:

tal= ['nul', 'en', 'to', 'tre', 'fire', 'fem']

tilindeks,varei opført(tal):

Print (indeks,vare)

Brug af Enumerate med et andet startindeks

Opregningsfunktionen tager et valgfrit argument, hvor du kan angive et startindeks. Som standard er det nul, men du kan ændre det ved hjælp af startargument:

tal= ['en', 'to', 'tre', 'fire', 'fem']

tilindeks,varei opført(tal,Start=1):

Print (indeks,vare)

I den anden sætning bruges start = 1 argument til at ændre startpunktet. Efter at have kørt kodeeksemplet ovenfor, skal du få følgende output:

1 en

2 to

3 tre

4 fire

5 fem

Tildeling af indeks med trin

I det første afsnit i denne artikel vises syntaks for for loop på C -sprog, hvor du kan definere trin mellem hver efterfølgende optælling eller indeks. Opregningsfunktionen i Python har ikke noget sådant argument tilgængeligt, så du kan ikke angive et trin mellem tællinger. Du kan faktisk skrive din egen logik for at implementere trin inde i den opregnede loop -blok. Der er dog en måde at implementere brugerdefinerede trin ved at skrive minimal kode. Følgende eksempel viser implementering af trin ved hjælp af zip- og rækkefunktioner:

tal= ['nul', 'to', 'fire', 'seks']

tilindeks,varei lynlås(rækkevidde(0, 7, 2),tal):

Print (indeks,vare)

Zip -funktionen giver dig mulighed for at oprette par ved at hente elementer med det samme indeks fra to eller flere iterabler. Så zip -funktionen her henter et element fra den iterable, der returneres fra område (0, 7, 2) -funktionen og et andet element fra talelisten og derefter parrer dem begge til en tupel. Slutresultatet er en identisk implementering til optællingsfunktionen, men med tilpassede trin specificeret som et tredje argument i funktionen område (0, 7, 2) (2 i dette tilfælde). Efter at have kørt kodeeksemplet ovenfor, skal du få følgende output:

0 nul

2 to

4 fire

6 seks

Konklusion

Opregningsfunktionen i Python giver dig mulighed for at skrive kortfattet kode ved at tildele en nummersekvens til elementer i et iterbart objekt. Dette er virkelig nyttigt, hvis du vil holde styr på indekset over varer inde i en gentagelig type. Hvis du vil opregne gentagelige typer med tilpassede trin, skal du bruge zip -funktionen forklaret i det sidste eksempel.