Python, выкарыстоўваючы функцыю enumerate(): Атрыманне элементаў і індэксаў спісу

Бізнэс

Выкарыстоўваючы функцыю enumerate() у Python, вы можаце атрымаць нумар індэксу (колькасць, парадак), а таксама элементы ітэрацыйнага аб’екта, напрыклад спіс або картэж у цыкле for.

У гэтым артыкуле тлумачацца асновы функцыі enumerate().

  • Функцыя атрымання індэкса ў цыкле for:enumerate()
    • Нармальны цыкл для
    • Цыкл для выкарыстання функцыі enumerate().
  • Пачніце індэкс функцыі enumerate() з 1 (ненулявое значэнне)
  • Пакажыце прырост (крок)

Функцыю enumerate() можна выкарыстоўваць, каб атрымаць індэкс у цыкле for.

Нармальны цыкл для

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

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

Цыкл для выкарыстання функцыі enumerate().

Пакажыце ітэрацыйны аб’ект, напрыклад спіс, у якасці аргумента функцыі enumerate().

Вы можаце атрымаць нумар індэксу і элемент у гэтым парадку.

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

Пачніце індэкс функцыі enumerate() з 1 (ненулявое значэнне)

Як паказана ў прыведзеным вышэй прыкладзе, па змаўчанні індэкс функцыі enumerate() пачынаецца з 0.

Калі вы хочаце пачаць з ліку, акрамя 0, укажыце адвольны пачатковы лік у якасці другога аргумента функцыі enumerate().

Каб пачаць з нуля, зрабіце наступнае.

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

Вядома, можна пачаць з іншых лічбаў.

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

Карысна, калі вы хочаце стварыць паслядоўна пранумараваны радок; разумней пазначыць пачатковы нумар у якасці другога аргумента функцыі enumerate(), чым выкарыстоўваць ‘i+1’ для пачатку з 1.

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

Больш падрабязную інфармацыю аб функцыі фармату, якая выкарыстоўваецца для запаўнення лікаў нулямі, глядзіце ў наступным артыкуле.

Пакажыце прырост (крок)

У функцыі enumerate() няма аргументу для пазначэння кроку прыросту, але гэта можа быць выканана наступным чынам

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