A Python enumerate() függvényével egy for ciklusban az index számát (szám, sorrend), valamint egy iterálható objektum, például egy lista vagy egy tuple elemeit kaphatjuk meg.
Ez a cikk az enumerate() függvény alapjait ismerteti.
- Funkció az index kinyerésére egy for ciklusban:
enumerate()
- Normál for ciklus
- Az enumerate() függvényt használó ciklushoz
- Az enumerate() függvény indexének kezdőértéke 1 (nem nulla érték).
- Adja meg az inkrementumot (lépés)
Az enumerate() függvény használható az index lekérdezésére egy for ciklusban.
Normál for ciklus
l = ['Alice', 'Bob', 'Charlie']
for name in l:
print(name)
# Alice
# Bob
# Charlie
Az enumerate() függvényt használó ciklushoz
Adjon meg egy iterálható objektumot, például egy listát az enumerate() függvény argumentumaként.
Az indexszámot és az elemet ebben a sorrendben kaphatja meg.
for i, name in enumerate(l):
print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie
Az enumerate() függvény indexének kezdőértéke 1 (nem nulla érték).
Ahogy a fenti példában látható, az enumerate() függvény indexe alapértelmezés szerint 0-ról indul.
Ha a 0-tól eltérő számmal szeretnénk kezdeni, adjunk meg egy tetszőleges kezdőszámot az enumerate() függvény második argumentumaként.
Ha a nulláról akarja kezdeni, tegye a következőket.
for i, name in enumerate(l, 1):
print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie
Természetesen más számokkal is lehet kezdeni.
for i, name in enumerate(l, 42):
print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie
Hasznos, ha sorszámozott karakterláncot akarsz létrehozni; okosabb, ha a kezdőszámot az enumerate() függvény második argumentumaként adod meg, mintha az 'i+1'-et használnád az 1-ről való induláshoz.
for i, name in enumerate(l, 1):
print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie
A formátum függvényről, amely a számok nullákkal való kitöltésére szolgál, a következő cikkben olvashat bővebben.
Adja meg az inkrementumot (lépés)
Az enumerate() függvényben nincs argumentum az inkrementális lépés megadására, de ez a következő módon érhető el
step = 3
for i, name in enumerate(l):
print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie