С помощта на функцията 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, която се използва за попълване на числата с нули.
- Свързани статии:Извеждане на попълнени нули, шестнадесетични числа и т.н. с функцията format() на Python
Определяне на нарастването (стъпка)
Във функцията enumerate() няма аргумент за определяне на стъпката на нарастване, но тя може да бъде постигната по следния начин
step = 3
for i, name in enumerate(l):
print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie