Använd Enumerate Function i Python för att skapa loopar med räknare

Use Enumerate Function Python Create Loops With Counters



Den här artikeln kommer att förklara användningen av uppräkningsfunktionen som är tillgänglig i Pythons standardmodulbibliotek. Enumerate -funktionen låter dig tilldela ett index eller räkna till element i alla iterabla objekt. Du kan sedan implementera ytterligare logik på dem eftersom du kommer att ha åtkomst till både värden och en räkning som är mappad till den.

Syntax och grundläggande exempel

Om du har använt en for loop i andra programmeringsspråk, särskilt C -språk och andra språk med syntax i C -stil, kan du ha angett ett startindex i loopet. För referens, här är hur en for loop ser ut på C och andra språk med liknande syntax:







för (inti= 0;i< 10;i++)

{

printf ('%d n',i);

}

Loop -satsen initierar en variabel med ett värde på noll, kontrollerar att den är mindre än ett tröskelvärde och ökar den med ett antal efter utvärdering av logik inuti loopblocket (om stoppvillkoret är uppfyllt). På så sätt kan du använda ett index och tilldela det till alla objekt som det refereras till i ditt loopblock. I jämförelse, här är hur en for loop med samma resultat ser ut i Python:



förii räckvidd(0, 10):

skriva ut (i)

Med intervallfunktionen i Python kan du ange en nummerintervallsekvens som har ett standardsteg på 1. Du kan ändra stegvärdet genom att ange ett tredje argument. Det andra argumentet i intervallfunktionen används för att ställa in tröskeln för stopptillstånd. Båda kodproverna ger följande utdata:



0

1

2

3

4

5

6

7

8

9

Dessa loopar fungerar bra om du bara vill generera någon nummersekvens och associera dem med någon logik inuti loop -satsen. Du kan dock behöva använda en annan kapslad loop eller använda avkastningsfunktionen på någon iterbar typ för att tilldela dem någon form av spårbar räkning. Uppräkningsmetoden gör det enkelt att tilldela index till iterables i ett uttalande, vilket eliminerar behovet av att köra flera kapslade loopar. Ta en titt på detta kodprov:





tal= ['noll', 'ett', 'två', 'tre', 'fyra', 'fem']

enumerated_numbers= listad(tal)

förindex,Artikelienumerated_numbers:

skriva ut (index,Artikel)

Den första satsen definierar en ny variabel som kallas nummer och tilldelar den en iterable (listtyp). Det andra påståendet visar användningen av uppräkningsfunktionen där du tillhandahåller en iterable till den som ett obligatoriskt argument. Den tredje satsen konverterar variabeln enumerated_numbers till ett listtypsobjekt. Som standard genererar enumerate -funktionen ett uppräknat typobjekt och inte en iterbar typ, så du måste konvertera det. Efter att ha kört kodprovet som nämns ovan bör du få följande utdata:

[(0, 'noll'), (1, 'en'), (2, 'två'), (3, 'tre'), (4, 'fyra'), (5, 'fem')]

Uppräkningsfunktionen tilldelar varje element i en iterbar typ en räkning och skapar tupler med parade värden. Som standard börjar räkningen från noll.



Nu när du har tilldelat ett nummer till varje element i en iterabel typ kan du enkelt slinga över det utan att skriva kapslade påståenden:

tal= ['noll', 'ett', 'två', 'tre', 'fyra', 'fem']

enumerated_numbers= listad(tal)

förindex,Artikelienumerated_numbers:

skriva ut (index,Artikel)

Kodprovet som anges ovan ger följande utdata:

0 noll

1 ett

2 två

3 tre

4 fyra

5 fem

Du kan göra koden kortare genom att använda enumerate function inline, som visas i exemplet nedan:

tal= ['noll', 'ett', 'två', 'tre', 'fyra', 'fem']

förindex,Artikeli listad(tal):

skriva ut (index,Artikel)

Använda Enumerate med ett annat startindex

Uppräkningsfunktionen tar ett valfritt argument där du kan ange ett startindex. Som standard är det noll, men du kan ändra det med hjälp av startargument:

tal= ['ett', 'två', 'tre', 'fyra', 'fem']

förindex,Artikeli listad(tal,Start=1):

skriva ut (index,Artikel)

I det andra påståendet används start = 1 -argumentet för att ändra startpunkten. Efter att ha kört kodprovet som anges ovan bör du få följande utdata:

1 ett

2 två

3 tre

4 fyra

5 fem

Tilldela index med steg

I det första avsnittet i denna artikel visas syntax för för loop på C -språk där du kan definiera steg mellan varje efterföljande antal eller index. Uppräkningsfunktionen i Python har inget sådant argument tillgängligt så att du inte kan ange ett steg mellan räkningarna. Du kan verkligen skriva din egen logik för att genomföra steg inuti det uppräknade för loopblocket. Det finns dock ett sätt att implementera anpassade steg genom att skriva minimal kod. Följande exempel visar implementering av steg med zip- och intervallfunktioner:

tal= ['noll', 'två', 'fyra', 'sex']

förindex,Artikeli blixtlås(räckvidd(0, 7, 2),tal):

skriva ut (index,Artikel)

Med zip -funktionen kan du skapa par genom att plocka upp element som har samma index från två eller flera iterabler. Så zip -funktionen här plockar upp ett element från den iterable som returneras från intervallet (0, 7, 2) och ett annat element från tallistan och parar dem sedan till en tupel. Slutresultatet är en identisk implementering som uppräkningsfunktionen men med anpassade steg specificerade som ett tredje argument i funktionen intervall (0, 7, 2) (2 i det här fallet). Efter att ha kört kodprovet som anges ovan bör du få följande utdata:

0 noll

2 två

4 fyra

6 sex

Slutsats

Uppräkningsfunktionen i Python låter dig skriva kortfattad kod genom att tilldela en talsekvens till element i ett iterabelt objekt. Detta är verkligen användbart om du vill ha koll på indexindex i en iterabel typ. Om du vill räkna upp iterabla typer med anpassade steg, använd zip -funktionen som förklarades i det sista exemplet.