Python, Използване на функцията enumerate(): Получаване на елементи и индекси на списък

Бизнес

С помощта на функцията enumerate() на Python можете да получите номера на индекса (брой, ред), както и елементите на итерабилен обект, например списък или кортеж, в цикъл for.

В тази статия са обяснени основите на функцията enumerate().

  • Функция за получаване на индекса в цикъл for: enumerate()
    • Нормален цикъл for
    • За цикъл, използващ функцията enumerate()
  • Започнете индекса на функцията enumerate() от 1 (ненулева стойност)
  • Определяне на нарастването (стъпка)

Функцията enumerate() може да се използва за получаване на индекса в цикъл for.

Нормален цикъл 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

Вижте следната статия за повече информация относно функцията format, която се използва за попълване на числата с нули.

Определяне на нарастването (стъпка)

Във функцията enumerate() няма аргумент за определяне на стъпката на нарастване, но тя може да бъде постигната по следния начин

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