enumerate

Содержание
Введение
Пример
Разбор
Похожие статьи

Введение

В этой статье вы узнаете как работает функция enumerate в Python 3.

enumerate получает итерируемый объект а возвращает набор кортежей вида (индекс элемента, элемент)

Создайте файл enumerate_demo.py и копируйте туда код из примеров.

Запустить файл можно командой python3 enumerate_demo.py

Пример

Пройдёмся функцией enumerate() по списку и заодно убедимся, что возвращаются кортежи (tuple)

sites = ["heihei.ru", "topbicycle.ru", "urn.su"] for site in enumerate(sites): print(f"site: {site}, type(site): {type(site)}")

site: (0, 'heihei.ru'), type(site): <class 'tuple'> site: (1, 'topbicycle.ru'), type(site): <class 'tuple'> site: (2, 'urn.su'), type(site): <class 'tuple'>

Подробности

Разберём способы итерации по объектам списка

letters = ['a', 'b', 'c', 'd', 'e'] for letter in letters: print(letter)

python enumerate_demo.py

a b c d e

Перебрать все элементы списка можно с помощью индексов

for index in range(len(letters)): print('letters', index, '=', letters[index])

python enumerate_demo.py

letters 0 = a letters 1 = b letters 2 = c letters 3 = d letters 4 = e

Чтобы пользоваться одновременно двумя переменными используется функция enumerate

for index, item in enumerate(letters): print('letters', index, '=', item)

python enumerate_demo.py

letters 0 = a letters 1 = b letters 2 = c letters 3 = d letters 4 = e

enumerate возвращает итерируемый объект (iterable object), который является последовательностью кортежей (tuple) вида (index, item)

Чтобы лучше понять происходящее добавьте в скрипт следующий код

enum_obj = enumerate(letters) print(next(enum_obj)) print(next(enum_obj)) print(next(enum_obj)) print(type(enum_obj))

(0, 'a') (1, 'b') (2, 'c') <class 'enumerate'>

Ещё один способ обхода списка - с помощью while

index = 0 while index < len(letters): print('letters', index, '=', letters[index]) index +=1