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