Функция enumerate() Python

enumerate() — это встроенная функция в Python, которая позволяет вам иметь автоматический счетчик во время цикла по итерациям.

Функция enumerate()

Функция enumerate() принимает следующий вид:

enumerate(iterable, start=0)


Функция принимает два аргумента:

  • iterable — объект, поддерживающий итерацию.
  • start — число, с которого начинается счетчик. Это необязательный аргумент. По умолчанию счетчик начинается с 0.

enumerate() возвращает объект перечисления, для которого вы можете вызвать метод __next__() (или next() в Python 2), чтобы получить кортеж, содержащий счетчик и текущее значение итерируемого.

Вот пример того, как создать список кортежей с помощью list() и как перебрать итерацию:

directions = ["north", "east", "south", "west"] 

list(enumerate(directions))



for index, value in enumerate(directions): 

    print("{}: {}".format(index, value))


[(0, 'north'), (1, 'east'), (2, 'south'), (3, 'west')]



0: north

1: east

2: south

3: west


Если индексирование с нулевым отсчетом у вас не работает, выберите другой начальный индекс для перечисления:

directions = ["north", "east", "south", "west"] 

list(enumerate(directions, 1))


[(1, 'north'), (2, 'east'), (3, 'south'), (4, 'west')]


Функция enumerate() работает с любым итерируемым объектом. Итерируемый объект — это контейнер, который можно повторять. Проще говоря, это означает объект, который можно перебрать с помощью цикла for . Большинство встроенных объектов в Python, таких как строки, списки и кортежи, являются повторяемыми.

Больше о enumerate()

Цикл for Python полностью отличается от традиционного цикла for стиле C, который доступен во многих языках программирования. Цикл for в Python эквивалентен циклу foreach в других языках.

Обычный метод, используемый новыми разработчиками Python для получения соответствующего индекса при работе с итерациями, заключается в использовании либо шаблона range(len(...)) , либо установки и увеличения счетчика:

planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]

for i in range(len(planets)):

    print("Planet {}: {}".format(i, planets[i]))


planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]

i = 0

for planet in planets:

    print("Planet {}: {}".format(i, planet))

    i += 1


Приведенные выше циклы можно переписать более идиоматическим способом с помощью enumerate() :

planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]

for index, value in enumerate(planets): 

    print("Planet {}: {}".format(index, value))


Все методы будут давать одинаковый результат:

Planet 0: Mercury

Planet 1: Venus

Planet 2: Earth

Planet 3: Mars

Planet 4: Jupiter

Planet 5: Saturn

Planet 6: Uranus

Planet 7: Neptune


Выводы

В этой статье мы показали вам, как использовать функцию Python enumerate() .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.



2020-12-10T01:11:44
Python