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

Бизнес

Используя функцию 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, которая используется для заполнения чисел нулями, см. в следующей статье.

Укажите приращение (шаг)

В функции enumerate() нет аргумента для указания инкрементного шага, но этого можно добиться, выполнив следующее

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