В данной статье мы бы хотели разобрать, как работает функция enumerate() в Python. Сначала мы рассмотрим её синтаксис и принцип работы, а дальше потренируемся на примерах, чтобы научиться использовать данную функцию на практике.
Итак, функция enumerate() в Python принимает некий набор данных в качестве параметра и возвращает объект enumerate.
Друзья, подписывайтесь на наш телеграм канал Pythonist. Там еще больше туториалов, задач и книг по Python
Этот объект возвращается в формате пар ключ-значение, где ключи — это соответствующие индексы элементов, а значения — сами элементы из переданного набора данных.
Но давайте сперва поговорим о синтаксисе и параметрах функции enumerate().
Синтаксис функции enumerate() в Python
Синтаксис функции enumerate()
выглядит следующим образом:
enumerate(iterable, start)
Функция enumerate() принимает два параметра: iterable
и start
.
iterable
— это итерируемый объект (список, кортеж и т.д.), который будет возвращен в виде пронумерованного объекта (объекта enumerate)start
— это начальный индекс для возвращаемого объекта enumerate. Значение по умолчанию равно 0, поэтому, если вы опустите этот параметр, в качестве первого индекса будет использоваться 0.
Как использовать функцию enumerate() в Python
В этом разделе мы рассмотрим несколько примеров, которые помогут нам понять синтаксис и параметры, разобранные в предыдущем разделе.
Обратите внимание, что при использовании enumerate() нужно указывать тип данных, в котором будет храниться наш объект enumerate при возврате (это может быть список, множество и т.д.). Вы лучше поймете это, когда мы рассмотрим примеры.
Пример №1: функция enumerate() с одним параметром
names = ["John", "Jane", "Doe"] enumNames = enumerate(names) print(list(enumNames)) # [(0, 'John'), (1, 'Jane'), (2, 'Doe')]
В приведенном выше примере мы создали список, состоящий из трех имен.
Затем мы преобразовали переменную names
в объект enumerate и сохранили результат в переменной с именем enumNames
.
Далее мы захотели, чтобы наш объект был выведен в виде списка, поэтому мы сделали следующее: list(enumNames)
.
При выводе на консоль результат будет выглядеть так: [(0, 'John'), (1, 'Jane'), (2, 'Doe')]
.
Как видите, результат мы получили в виде пар ключ-значение. Первый индекс — 0, он связан с первым элементом в нашем списке имен names
, второй — 1, связан со вторым элементом в списке names
и так далее.
Обратим внимание, что в нашем примере мы использовали только первый параметр функции enumerate().
В следующем примере мы используем оба параметра, чтобы вы увидели разницу.
Пример №2: функция enumerate() с указанием начального индекса
names = ["John", "Jane", "Doe"] enumNames = enumerate(names, 10) print(list(enumNames)) # [(10, 'John'), (11, 'Jane'), (12, 'Doe')]
Здесь мы добавили второй параметр в функцию enumerate()
, написав enumerate(names, 10)
.
Значение второго параметра, 10, будет начальным индексом для ключей (индексов) в объекте enumerate.
Результат будет таким: [(10, 'John'), (11, 'Jane'), (12, 'Doe')]
.
Мы видим, что первый индекс равен 10, второй 11 и так далее. Таким образом, с помощью второго аргумента start
мы можем установить любой начальный индекс для наших элементов.
Как перебрать результат функции enumerate() в Python
Вот простой пример, показывающий, как мы можем перебирать полученный в результате объект enumerate:
names = ["John", "Jane", "Doe"] enumNames = enumerate(names) for item in enumNames: print(item) # (0, 'John') # (1, 'Jane') # (2, 'Doe')
Используя цикл for
, мы прошлись по нашему объекту с помощью следующей команды: for item in enumNames
. Подробнее про тонкости использования цикла for
можете узнать в статье «Цикл for в Python: тонкости написания».
На выходе мы получили элементы исходного объекта, выведенные в формате пар ключ-значение.
Заключение
Итак, в этой статье мы поговорили о том, как работает функция enumerate() в Python. Мы начали с рассмотрения синтаксиса и параметров этой функции, затем разобрали несколько примеров ее использования.
Наконец, мы увидели, как можно перебирать вывод функции enumerate() с помощью цикла for
.
Надеемся, данная статья была вам полезна! Успехов в написании кода!
Перевод статьи «Python enumerate() – What is the Enumerate Function in Python?».