Python, Gebruik van de opsomming() functie: De elementen en indexen van een lijst krijgen

Bedrijf

Met behulp van Python's enumerate() functie kan je zowel het indexnummer (count, order) als de elementen van een iterabel object zoals een lijst of tuple in een for-lus krijgen.

Dit artikel legt de basis uit van de enumerate() functie.

  • Functie om de index in een for-lus te krijgen: enumerate()
    • Normale for-lus
    • Voor een lus met de functie opsommen()
  • Start de index van de opsomming()-functie op 1 (een waarde die niet nul is)
  • Specificeer de toename (stap)

De functie opsomming() kan worden gebruikt om de index in een for-lus te krijgen.

Normale for-lus

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

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

Voor een lus met de functie opsommen()

Geef een iterabel object, zoals een lijst, op als argument van de functie opsomming().

U kunt het indexnummer en het element in die volgorde krijgen.

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

Start de index van de opsomming()-functie op 1 (een waarde die niet nul is)

Zoals in het voorbeeld hierboven, begint de index van de opsomming() functie standaard bij 0.

Indien je met een ander getal dan 0 wil beginnen, geef dan een willekeurig startgetal op als tweede argument van de opsomming() functie.

Om vanaf nul te beginnen, doe je het volgende.

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

Je kunt natuurlijk ook met andere getallen beginnen.

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

Nuttig wanneer je een sequentieel genummerde string wil maken; het is slimmer om het startnummer op te geven als tweede argument van de enumerate() functie dan om 'i+1' te gebruiken om vanaf 1 te beginnen.

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

Zie het volgende artikel voor meer informatie over de format functie, die gebruikt wordt om getallen met nullen te vullen.

Specificeer de toename (stap)

Er is geen argument om de incrementele stap in de opsomming()-functie te specificeren, maar het kan worden bereikt door het volgende te doen

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