Поиск по сайту:
Не слово, а несчастье есть учитель глупцов (Демокрит).

Функция Enumerate в Python

23.10.2019
Python 3 - Обзор

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

 

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

enumerate(iterable, start=0)

 

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

  • 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.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

Спасибо!

Теперь редакторы в курсе.