Python

Использование функции перечисления в Python для создания циклов со счетчиками

Использование функции перечисления в Python для создания циклов со счетчиками

В этой статье будет объяснено использование функции «перечислить», доступной в стандартной библиотеке модулей Python. Функция Enumerate позволяет вам присваивать «индекс» или «счетчик» элементам в любом итерируемом объекте. Затем вы можете реализовать на них дополнительную логику, так как у вас будет доступ как к значениям, так и к сопоставленному с ними счетчику.

Синтаксис и базовый пример

Если вы использовали цикл «for» в других языках программирования, особенно в языке «C» и других языках, имеющих синтаксис стиля «C», возможно, вы указали начальный индекс в цикле. Для справки, вот как выглядит цикл for в «C» и других языках с аналогичным синтаксисом:

для (int i = 0; i < 10; i++)

printf ("% d \ n", я);

Оператор цикла инициализирует переменную, имеющую нулевое значение, проверяет, что оно меньше порогового значения, и увеличивает его на один счет после оценки логики внутри блока цикла (если выполняется условие остановки). Таким образом, вы можете использовать индекс и назначать его любым объектам, указанным в вашем блоке цикла. Для сравнения, вот как выглядит цикл for с таким же результатом в Python:

для i в диапазоне (0, 10):
печать (я)

Функция «диапазон» в Python позволяет вам указать последовательность диапазонов номеров с шагом по умолчанию 1. Вы можете изменить значение шага, указав третий аргумент. Второй аргумент в функции «диапазон» используется для установки порога для условия остановки. Оба образца кода дают следующий результат:

0
1
2
3
4
5
6
7
8
9

Эти циклы работают нормально, если вы просто хотите сгенерировать некоторую числовую последовательность и связать их с некоторой логикой внутри оператора цикла. Однако вам, возможно, придется использовать другой вложенный цикл или функцию «yield» для любого итеративного типа, чтобы назначить им какой-то отслеживаемый счетчик. Метод «enumerate» позволяет легко назначать индексы для итераций в одном операторе, тем самым устраняя необходимость в запуске нескольких вложенных циклов. Взгляните на этот пример кода:

числа = ["ноль", "один", "два", "три", "четыре", "пять"]
enumerated_numbers = перечислить (числа)
для индекса, элемент в enumerated_numbers:
печать (индекс, элемент)

Первый оператор определяет новую переменную с именем «числа» и назначает ей итеративный (тип списка). Второй оператор показывает использование функции «перечислить», в которой вы предоставляете ей итерацию в качестве обязательного аргумента. Третий оператор преобразует переменную enumerated_numbers в объект типа списка. По умолчанию функция enumerate генерирует объект типа enumerate, а не итеративный тип, поэтому вам необходимо преобразовать его. После выполнения примера кода, упомянутого выше, вы должны получить следующий результат:

[(0, 'ноль'), (1, 'один'), (2, 'два'), (3, 'три'), (4, 'четыре'), (5, 'пять')]

Функция enumerate присваивает счет каждому элементу в итеративном типе и создает кортежи, имеющие парные значения. По умолчанию счет начинается с нуля.

Теперь, когда вы присвоили номер каждому элементу итеративного типа, вы можете легко перебрать его без написания вложенных операторов:

числа = ["ноль", "один", "два", "три", "четыре", "пять"]
enumerated_numbers = перечислить (числа)
для индекса, элемент в enumerated_numbers:
печать (индекс, элемент)

Указанный выше пример кода даст следующий результат:

0 ноль
1 один
2 два
3 три
4 четыре
5 пять

Вы можете сделать код короче, используя встроенную функцию «перечислить», как показано в примере ниже:

числа = ["ноль", "один", "два", "три", "четыре", "пять"]
для индекса, элемент в перечислении (числа):
печать (индекс, элемент)

Использование Enumerate с другим начальным индексом

Функция enumerate принимает необязательный аргумент, в котором вы можете указать начальный индекс. По умолчанию он равен нулю, но вы можете изменить его, используя аргумент «start»:

числа = ["один", "два", "три", "четыре", "пять"]
для индекса, элемент в перечислении (числа, начало = 1):
печать (индекс, элемент)

Во втором утверждении аргумент «start = 1» используется для изменения начальной точки. После выполнения указанного выше примера кода вы должны получить следующий результат:

1 один
2 два
3 три
4 четыре
5 пять

Назначение индекса с шагами

В первом разделе этой статьи показан синтаксис цикла for на языке C, где вы можете определить шаги между каждым последующим счетчиком или индексом. Функция enumerate в Python не имеет такого аргумента, поэтому вы не можете указать шаг между счетчиками. Вы действительно можете написать свою собственную логику для реализации шагов внутри пронумерованного блока цикла «for». Однако есть способ реализовать собственные шаги, написав минимальный код. В следующем примере показано выполнение шагов с использованием функций «zip» и «range»:

числа = ["ноль", "два", "четыре", "шесть"]
для индекса, элемент в zip (диапазон (0, 7, 2), числа):
печать (индекс, элемент)

Функция «zip» позволяет создавать пары, выбирая элементы с одинаковым индексом из двух или более итераций. Таким образом, функция «zip» здесь берет элемент из итерируемого объекта, возвращенного из функции «range (0, 7, 2)», и другой элемент из списка «numbers», а затем объединяет их в кортеж. Конечным результатом является реализация, идентичная реализации функции «перечисление», но с пользовательскими шагами, указанными в качестве третьего аргумента в функции «диапазон (0, 7, 2)» (в данном случае 2). После выполнения указанного выше примера кода вы должны получить следующий результат:

0 ноль
2 два
4 четыре
6 шесть

Заключение

Функция «перечислить» в Python позволяет писать краткий код, присваивая числовую последовательность элементам в итеративном объекте. Это действительно полезно, если вы хотите отслеживать индекс элементов внутри итеративного типа. Если вы хотите «перечислить» итерационные типы с помощью настраиваемых шагов, используйте функцию «zip», описанную в последнем примере.

Как изменить направление прокрутки мыши и сенсорной панели в Windows 10
Мышь а также Сенсорная панельs не только упрощают вычисления, но и делают их более эффективными и требуют меньше времени. Мы не можем представить себе...
Как изменить указатель мыши и размер курсора, цвет и схему в Windows 10
Указатель мыши и курсор в Windows 10 - очень важные аспекты операционной системы. То же самое можно сказать и о других операционных системах, так что,...
Бесплатные движки с открытым исходным кодом для разработки игр для Linux
В этой статье будет рассмотрен список бесплатных игровых движков с открытым исходным кодом, которые можно использовать для разработки 2D- и 3D-игр в L...