Python, með því að nota enumerate() aðgerðina: Að fá þætti og vísitölur lista

Viðskipti

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
Copied title and URL