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()
.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.