У цій статті буде пояснено використання функції “перерахувати”, доступну у стандартній бібліотеці модулів Python. Функція перерахування дозволяє присвоїти елементам "індекс" або "підрахунок" будь-який об'єкт, що піддається ітерації. Потім ви можете реалізувати на них подальшу логіку, оскільки у вас буде доступ до обох значень і підрахованого до них рахунку.
Синтаксис та базовий приклад
Якщо ви використовували цикл "for" в інших мовах програмування, особливо мові "C" та інших мовах із синтаксисом стилю "C", можливо, ви вказали початковий індекс у циклі. Для довідки, ось як виглядає цикл “for” у “C” та інших мовах, що мають подібний синтаксис:
для (int i = 0; i < 10; i++)printf ("% d \ n", i);
Оператор циклу ініціалізує змінну, що має значення нуля, перевіряє, що вона менше порогового значення, і збільшує її на один рахунок після оцінки логіки всередині блоку циклу (якщо умова зупинки виконана). Таким чином ви можете використовувати індекс і призначати його будь-яким об'єктам, на які посилається ваш цикл. Для порівняння, ось як виглядає цикл for з однаковим результатом у Python:
для i в діапазоні (0, 10):друк (i)
Функція “діапазон” у Python дозволяє вказати послідовність діапазону чисел, що має крок за замовчуванням 1. Ви можете змінити значення кроку, надавши третій аргумент. Другий аргумент у функції “діапазон” використовується для встановлення порогу умови зупинки. Обидва зразки коду видають такі результати:
01
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”, пояснену в останньому прикладі.