Python, Användning av funktionen enumerate(): Att få fram element och index i en lista

Företag

Med hjälp av Pythons funktion enumerate() kan du få fram indexnumret (antal, ordning) och elementen i ett iterbart objekt, t.ex. en lista eller tupel, i en for-slinga.

I den här artikeln förklaras grunderna för funktionen enumerate().

  • Funktion för att hämta index i en for-slinga: enumerate()
    • Normal för slinga
    • För en slinga som använder funktionen enumerate()
  • Börja indexet för funktionen enumerate() vid 1 (ett värde som inte är noll).
  • Ange ökningen (steg)

Funktionen enumerate() kan användas för att få fram index i en for-slinga.

Normal för slinga

l = ['Alice', 'Bob', 'Charlie']

for name in l:
    print(name)
# Alice
# Bob
# Charlie

För en slinga som använder funktionen enumerate()

Ange ett iterbart objekt, t.ex. en lista, som argument för funktionen enumerate().

Du kan få fram indexnumret och elementet i den ordningen.

for i, name in enumerate(l):
    print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie

Börja indexet för funktionen enumerate() vid 1 (ett värde som inte är noll).

Som visas i exemplet ovan börjar indexet för funktionen enumerate() som standard från 0.

Om du vill börja med ett annat nummer än 0 anger du ett godtyckligt startnummer som det andra argumentet i funktionen enumerate().

Om du vill börja om från början gör du följande.

for i, name in enumerate(l, 1):
    print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie

Du kan naturligtvis börja med andra siffror.

for i, name in enumerate(l, 42):
    print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie

Användbart när du vill skapa en sträng med löpande nummer; det är smartare att ange startnumret som det andra argumentet i funktionen enumerate() än att använda ”i+1” för att börja från 1.

for i, name in enumerate(l, 1):
    print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie

I följande artikel finns mer information om formatfunktionen, som används för att fylla ut siffror med nollor.

Ange ökningen (steg)

Det finns inget argument för att ange det inkrementella steget i funktionen enumerate(), men det kan uppnås genom att göra följande

step = 3
for i, name in enumerate(l):
    print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie
Copied title and URL