Með því að nota enumerate() fall Python geturðu fengið vísitölu (talningu, röð) sem og þætti endurtekins hlutar eins og lista eða tuple í for-lykkju.
Þessi grein útskýrir grunnatriði enumerate() fallsins.
- Virkni til að fá vísitöluna í for lykkju:
enumerate()
- Venjulegt fyrir lykkju
- Fyrir lykkju með því að nota enumerate() aðgerðina
- Byrjaðu vísitölu enumerate() fallsins á 1 (gildi sem er ekki núll)
- Tilgreindu hækkun (skref)
Enumerate() fallið er hægt að nota til að fá vísitöluna í for lykkju.
Venjulegt fyrir lykkju
l = ['Alice', 'Bob', 'Charlie']
for name in l:
print(name)
# Alice
# Bob
# Charlie
Fyrir lykkju með því að nota enumerate() aðgerðina
Tilgreindu endurtekanlegan hlut eins og lista sem röksemdafærslu enumerate() fallsins.
Þú getur fengið vísitölu og frumefni í þeirri röð.
for i, name in enumerate(l):
print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie
Byrjaðu vísitölu enumerate() fallsins á 1 (gildi sem er ekki núll)
Eins og sýnt er í dæminu hér að ofan, sjálfgefið, byrjar vísitalan á enumerate() fallinu frá 0.
Ef þú vilt byrja á annarri tölu en 0, tilgreindu handahófskennda upphafstölu sem seinni röksemd enumerate() fallsins.
Til að byrja frá grunni skaltu gera eftirfarandi.
for i, name in enumerate(l, 1):
print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie
Auðvitað geturðu byrjað á öðrum tölum.
for i, name in enumerate(l, 42):
print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie
Gagnlegt þegar þú vilt búa til raðnúmeraðan streng; það er snjallara að tilgreina upphafstöluna sem seinni röksemd enumerate() fallsins en að nota ‘i+1’ til að byrja á 1.
for i, name in enumerate(l, 1):
print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie
Sjá eftirfarandi grein fyrir frekari upplýsingar um sniðfallið, sem er notað til að fylla tölur með núllum.
Tilgreindu hækkun (skref)
Það eru engin rök til að tilgreina stigvaxandi skref í enumerate() fallinu, en það er hægt að ná með því að gera eftirfarandi
step = 3
for i, name in enumerate(l):
print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie