Python

Використовуйте функцію перерахування в Python для створення циклів за допомогою лічильників

Використовуйте функцію перерахування в Python для створення циклів за допомогою лічильників

У цій статті буде пояснено використання функції “перерахувати”, доступну у стандартній бібліотеці модулів Python. Функція перерахування дозволяє присвоїти елементам "індекс" або "підрахунок" будь-який об'єкт, що піддається ітерації. Потім ви можете реалізувати на них подальшу логіку, оскільки у вас буде доступ до обох значень і підрахованого до них рахунку.

Синтаксис та базовий приклад

Якщо ви використовували цикл "for" в інших мовах програмування, особливо мові "C" та інших мовах із синтаксисом стилю "C", можливо, ви вказали початковий індекс у циклі. Для довідки, ось як виглядає цикл “for” у “C” та інших мовах, що мають подібний синтаксис:

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

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

Оператор циклу ініціалізує змінну, що має значення нуля, перевіряє, що вона менше порогового значення, і збільшує її на один рахунок після оцінки логіки всередині блоку циклу (якщо умова зупинки виконана). Таким чином ви можете використовувати індекс і призначати його будь-яким об'єктам, на які посилається ваш цикл. Для порівняння, ось як виглядає цикл for з однаковим результатом у Python:

для i в діапазоні (0, 10):
друк (i)

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

0
1
2
3
4
5
6
7
8
9

Ці цикли чудово працюють, якщо ви просто хочете сформувати деяку послідовність чисел і пов’язати їх з деякою логікою всередині оператора циклу. Однак, можливо, вам доведеться використовувати інший вкладений цикл або використовувати функцію “yield” для будь-якого ітеративного типу, щоб призначити їм якийсь відстежуваний рахунок. Метод “перерахувати” полегшує присвоєння індексів ітерабелям в одному операторі, тим самим усуваючи необхідність запуску декількох вкладених циклів. Погляньте на цей зразок коду:

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

Перше твердження визначає нову змінну, яка називається “числа”, і присвоює їй ітерабель (тип списку). Другий вислів показує використання функції “перерахувати”, де ви надаєте їй ітерабель як обов’язковий аргумент. Третій оператор перетворює змінну “enumerated_numbers” в об’єкт типу списку. За замовчуванням функція “перелічувати” генерує об’єкт типу “перерахувати”, а не ітерабельний тип, тому вам доведеться його перетворити. Після запуску зразка коду, згаданого вище, ви повинні отримати такий результат:

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

Функція “перерахувати” призначає підрахунок кожному елементу ітерабельного типу та створює кортежі, що мають спарені значення. За замовчуванням відлік починається з нуля.

Тепер, коли ви призначили номер кожному елементу ітерабельного типу, ви можете легко прокручувати його, не пишучи вкладених операторів:

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

Зазначений вище зразок коду дасть такий результат:

0 нуль
1 один
2 дві
3 три
4 чотири
5 п’ять

Ви можете скоротити код за допомогою вбудованої функції “перерахувати”, як показано в прикладі нижче:

числа = ["нуль", "один", "два", "три", "чотири", "п'ять"]
для індексу, елемент у переліку (цифри):
друк (покажчик, елемент)

Використання Enumerate з іншим початковим індексом

Функція “перерахувати” приймає необов’язковий аргумент, де ви можете вказати початковий індекс. За замовчуванням він дорівнює нулю, але ви можете змінити його, використовуючи аргумент “start”:

цифри = ["один", "два", "три", "чотири", "п'ять"]
для індексу, елемент у переліку (числа, початок = 1):
друк (покажчик, елемент)

У другому твердженні аргумент “start = 1” використовується для зміни початкової точки. Після запуску зразка коду, зазначеного вище, ви повинні отримати такий результат:

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

Призначення індексу з кроками

У першому розділі цієї статті показано синтаксис циклу "for" мовою "C", де ви можете визначити кроки між кожним наступним підрахунком або індексом. Функція “перерахувати” в 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”, пояснену в останньому прикладі.

SuperTuxKart for Linux
SuperTuxKart is a great title designed to bring you the Mario Kart experience free of charge on your Linux system. It is pretty challenging and fun to...
Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...
0 A.D. Tutorial
Out of the many strategy games out there, 0 A.D. manages to stand out as a comprehensive title and a very deep, tactical game despite being open sourc...