Как работает функция enumerate() в Python?
В данной статье мы бы хотели разобрать, как работает функция enumerate() в Python. Сначала мы рассмотрим её синтаксис и принцип работы, а дальше потренируемся на примерах, чтобы научиться использовать данную функцию на практике.
Итак, функция enumerate() в Python принимает некий набор данных в качестве параметра и возвращает объект enumerate.
Этот объект возвращается в формате пар ключ-значение, где ключи — это соответствующие индексы элементов, а значения — сами элементы из переданного набора данных.
Но давайте сперва поговорим о синтаксисе и параметрах функции enumerate().
Синтаксис функции enumerate() в Python
Синтаксис функции enumerate() выглядит следующим образом:
Функция 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 .
Надеемся, данная статья была вам полезна! Успехов в написании кода!