Ved hjælp af Pythons funktion enumerate() kan du hente indeksnummeret (antal, rækkefølge) samt elementerne i et iterbart objekt, f.eks. en liste eller tupel, i en for-loop.
Denne artikel forklarer det grundlæggende i funktionen enumerate().
- Funktion til at få indekset i en for-løkke:
enumerate()
- Normal for loop
- For loop ved hjælp af funktionen enumerate()
- Start indekset for enumerate() funktionen ved 1 (en værdi, der ikke er nul)
- Angiv trin (trin)
Funktionen enumerate() kan bruges til at hente indekset i en for-løkke.
Normal for loop
l = ['Alice', 'Bob', 'Charlie']
for name in l:
print(name)
# Alice
# Bob
# Charlie
For loop ved hjælp af funktionen enumerate()
Angiv et iterbart objekt, f.eks. en liste, som argument for funktionen enumerate().
Du kan få indeksnummeret og elementet i den rækkefølge.
for i, name in enumerate(l):
print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie
Start indekset for enumerate() funktionen ved 1 (en værdi, der ikke er nul)
Som vist i eksemplet ovenfor starter indekset for funktionen enumerate() som standard fra 0.
Hvis du vil starte med et andet tal end 0, skal du angive et vilkårligt starttal som det andet argument i funktionen enumerate().
Hvis du vil starte helt forfra, skal du gøre følgende.
for i, name in enumerate(l, 1):
print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie
Du kan selvfølgelig også starte med andre tal.
for i, name in enumerate(l, 42):
print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie
Nyttigt, når du vil oprette en streng med sekventielt nummer; det er smartere at angive startnummeret som andet argument i enumerate() funktionen end at bruge 'i+1' for at starte fra 1.
for i, name in enumerate(l, 1):
print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie
Se følgende artikel for at få flere oplysninger om formatfunktionen, som bruges til at udfylde tal med nuller.
- Relaterede artikler:Udskrivning af udfyldte nuller, hexadecimale tal osv. med Pythons format()-funktion
Angiv trin (trin)
Der er ikke noget argument til at angive det inkrementelle trin i funktionen enumerate(), men det kan opnås ved at gøre følgende
step = 3
for i, name in enumerate(l):
print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie