Enumerate() это встроенная функция в Python, которая позволяет вам иметь автоматический счетчик, циклически повторяя итерации.
Функция enumerate() принимает следующий вид:
enumerate(iterable, start=0)
Функция принимает два аргумента:
enumerate() возвращает объект перечисления, для которого вы можете вызвать метод __next__() (или next() в Python 2), чтобы получить кортеж, содержащий счетчик и текущее значение итерационного объекта.
Вот пример того, как создать список кортежей с помощью list() и как перебрать цикл:
directions = ["север", "юг", "запад", "восток"] list(enumerate(directions)) for index, value in enumerate(directions): print("{}: {}".format(index, value))
[(0, 'север'), (1, 'юг'), (2, 'запад'), (3, 'восток')] 0: север 1: юг 2: запад 3: восток
Если индексация с нуля не работает для вас, выберите другой начальный индекс для перечисления:
directions = ["север", "юг", "запад", "восток"] list(enumerate(directions, 1))
[(1, 'север'), (2, 'юг'), (3, 'запад'), (4, 'восток')]
Функция enumerate() работает на любой итерации объекта. Итерируемый – это контейнер, который можно перебирать. Говоря простыми словами, это означает объект, который вы можете зациклить с помощью forцикла. Большинство встроенных объектов в Python, таких как строки, списки и кортежи, являются итеративными.
Цикл for в Python полностью отличается от традиционного цикла for в стиле C, который доступен во многих языках программирования. Цикл for в Python эквивалентно другим языкам цикла foreach.
Обычная техника, используемая новыми разработчиками Python для получения соответствующего индекса при работе с итерациями, заключается в использовании либо шаблона range(len(…)), либо набора и приращения счетчика:
planets = ["Меркурий", "Венера", "Земля", "Марс", "Юпитер", "Сатурн", "Уран", "Нептун"] for i in range(len(planets)): print("Planet {}: {}".format(i, planets[i]))
planets = ["Меркурий", "Венера", "Земля", "Марс", "Юпитер", "Сатурн", "Уран", "Нептун"] i = 0 for planet in planets: print("Planet {}: {}".format(i, planet)) i += 1
Приведенные выше циклы можно переписать более идиоматическим способом, используя enumerate():
planets = ["Меркурий", "Венера", "Земля", "Марс", "Юпитер", "Сатурн", "Уран", "Нептун"] for index, value in enumerate(planets): print("Планета №{}: {}".format(index, value))
Все методы будут выдавать один и тот же результат:
Планета № 0: Меркурий Планета № 1: Венера Планета № 2: Земля Планета № 3: Марс Планета № 4: Юпитер Планета № 5: Сатурн Планета № 6: Уран Планета № 7: Нептун
В этой статье мы показали вам, как использовать функцию enumerate() в Python.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.