Python Enumerate: Пояснення з прикладами

Робота зі списками та іншими ітерованими об’єктами є типовим завданням у . Іноді вам може знадобитися прокрутити ці ітерації, одночасно відстежуючи індекс або кількість поточного елемента. Саме тут на допомогу приходить вбудована функція Python enumerate().

Функція enumerate() у Python надає вам зручний спосіб отримати доступ як до індексу елемента, так і до самого елемента, коли ви переглядаєте список або будь-який ітерований об’єкт.

Python Enumerate: Пояснення з прикладами

Ця функція робить ваш файл читабельним і ефективним. Це дозволяє вам прокручувати елементи та отримувати їхні індекси та значення. Замість того, щоб вручну ініціалізувати та збільшувати лічильник у циклі, ви можете покластися на enumerate(), щоб виконати цю роботу за вас.

У цій статті ви дізнаєтесь про вбудовану функцію Python, функцію enumerate(), її важливість у вашому коді Python та випадки її використання.

Давайте потрапимо в це!

Зміст

Що таке функція Enumerate Python?

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

Без Python enumerate() ви можете вирішити використовувати змінну лічильника, яку ви збільшуєте в кожній ітерації циклу. Але цей підхід може бути схильний до помилок, і він не дуже «Pythonic».

Enumerate — це вбудована функція в Python, яка дає змогу перебирати об’єкти, які можна ітерувати, одночасно відстежуючи індекс поточного елемента.

Тепер, коли ви зрозуміли, що таке функція enumerate() у Python, давайте перейдемо до синтаксису функції enumerate() Python у наступному розділі!

Який синтаксис функції Enumerate Python?

Синтаксис функції визначає, як ви повинні використовувати цю функцію у своєму коді, зокрема, які аргументи вона приймає та що повертає.

Python Enumerate: Пояснення з прикладами

Функція enumerate () має такий синтаксис:

enumerate(, start=0)
  • : це обов’язковий параметр і може бути будь-яким ітерованим Python, таким як список або кортеж.

  • start : цей другий параметр є необов’язковим параметром, який визначає початкове значення лічильника. За замовчуванням встановлено значення 0.

Повернене значення функції enumerate () — це об’єкт enumerate, який є ітератором, що має пари (індекс, елемент) для кожного елемента в заданому ітераторі.

Ви можете використовувати цей ітератор у a для одночасного доступу як до індексу, так і до елемента.

У наступному прикладі показано, як можна використовувати функцію enumerate() зі списком:

fruits = ['apple', 'banana', 'cherry']

for index, item in enumerate(fruits):
    print(index, item)

У цьому прикладі enumerate() перебирає об’єкти enumerate, тобто список фруктів , і призначає індекс кожному елементу, починаючи з 0.

Після цього цикл for розпаковує індекс і елемент із перерахованого об’єкта. Це дає змогу виконувати операції на основі індексу та значення елемента.

Ми використовуємо функцію друку для друку покажчика та елемента на екрані. Вихід коду наведено на зображенні нижче:

Python Enumerate: Пояснення з прикладами

У вихідних даних ви можете побачити, що початковий індекс дорівнює 0. Це значення індексу за замовчуванням, яке автоматично призначається інтерпретатором Python.

Однак ви також можете вказати інше початкове значення для лічильника, надавши необов’язковий параметр start , як показано в коді нижче:

for index, item in enumerate(fruits, start=1):
    print(index, item)

Результат буде подібний до наведеного вище. Єдина відмінність полягатиме в тому, що індекс тепер починається з 1.

Python Enumerate: Пояснення з прикладами

Отже, тепер ви знаєте синтаксис функції enumerate() у Python. Але, як і з будь-яким інструментом, важливо знати, коли і де його використовувати.

Тому в наступному розділі ми розглянемо деякі типові випадки використання функції enumerate()!

5 випадків використання функції Enumerate Python

Функція enumerate в Python широко використовується в сценаріях, де для програміста важливі як індекс, так і значення ітерованого об’єкта.

Нижче ми перерахували деякі типові випадки використання функцій перерахування в Python.

1. Як використовувати Enumerate зі списками Python

У Python a — це вбудована структура даних, яка дозволяє зберігати кілька елементів в одній змінній. Думайте про список як про контейнер, куди ви можете помістити різні елементи, і вони збережуть свій порядок.

Функцію enumerate() можна використовувати для списків різними способами, наприклад:

A. Доступ до елементів списку та їхніх індексів за допомогою Python Enumerate

Один із найпоширеніших випадків використання enumerate() — коли вам потрібно отримати доступ як до елементів списку, так і до їхніх індексів. Enumerate дозволяє зробити це чистим і ефективним способом.

Нижче наведено приклад доступу до елементів списку та їх індексів:

fruits = ['apple', 'banana', 'mango', 'grape', 'orange']
for index, fruit in enumerate(fruits):
    print(f"At index {index}, the fruit is {fruit}.")

Результат цього коду наведено на зображенні нижче:

Python Enumerate: Пояснення з прикладами

B. Зміна елементів списку за допомогою Python Enumerate

Коли вам потрібно змінити елементи списку на основі їх індексу, enumerate() є чудовим інструментом. Ви можете отримати доступ до індексу в циклі та використовувати його для зміни списку.

Нижче наведено приклад зміни елементів списку за допомогою функції enumerate:

numbers = [1, 2, 3, 4, 5]

for i, num in enumerate(numbers):
    numbers[i] = num * 2

Цей код Python створює список чисел від 1 до 5. Потім він використовує цикл for і функцію enumerate() для повторення списку.

Для кожної ітерації він множить поточне число (num) на 2 і перепризначає його на ту саму позицію в списку (numbers[i]).

У результаті кожне число у вихідному списку подвоюється, як показано на зображенні нижче:

Python Enumerate: Пояснення з прикладами

C. Порівняння елементів у двох списках за допомогою Python Enumerate

Якщо ви порівнюєте елементи в двох різних списках, enumerate() може надати індекс, потрібний для доступу до елементів в обох списках одночасно.

Нижче наведено приклад використання функції enumerate для порівняння елементів у двох списках:

list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 0, 5]
for i, value in enumerate(list1):
    if value != list2[i]:
        print(f"Difference at index {i}: {value} (list1) vs {list2[i]} (list2)")

У цьому коді ми спочатку визначаємо два списки, list1 і list2. Потім ми проходимо список1 за допомогою циклу for з enumerate(), який надає індекс (i) і значення кожного елемента.

Якщо поточний елемент у списку1 не збігається з відповідним елементом у списку2, він друкує індекс різниці та відмінні значення з обох списків.

Результат цього коду показано нижче:

Python Enumerate: Пояснення з прикладами

2. Як використовувати Enumerate з кортежами Python

Кортеж у Python — це впорядкована колекція елементів, схожа на список. Єдина відмінність полягає в тому, що кортеж незмінний, тобто ви не можете змінити його вміст після створення.

Нижче наведено деякі з випадків, коли ви можете використовувати enumerate з кортежами Python.

A. Використання Python Enumerate() для пошуку елемента в кортежі

Під час роботи з кортежами в Python вам часто може знадобитися знайти, чи існує елемент у кортежі.

Наступний приклад коду демонструє використання enumerate для пошуку елементів у кортежі:

fruits = ('apple', 'banana', 'mango', 'grape', 'orange')
for i, fruit in enumerate(fruits):
    if fruit == 'mango':
        print(f"'mango' found at position {i}")

Цей код надрукує «'mango' знайдено в позиції 2», оскільки 'mango' знаходиться під індексом 2 у кортежі.

Python Enumerate: Пояснення з прикладами

B. Використання Python Enumerate() для створення словника з кортежу

Якщо у вас є кортеж і вам потрібно перетворити його на словник, функція enumerate() Python може стати вашим інструментом.

Приклад коду показує, як можна створити словник із кортежу за допомогою enumerate:

fruits = ('apple', 'banana', 'mango', 'grape', 'orange')

fruit_dict = {i: fruit for i, fruit in enumerate(fruits)}
print(fruit_dict)

Цей код надрукує словник, де ключами є індекси, а значеннями є елементи з кортежу.

Python Enumerate: Пояснення з прикладами

3. Як використовувати Enumerate зі словниками Python

У Python словник є змінним, невпорядкованим, де кожен ключ має бути унікальним. Думайте про це як про реальний словник: ви шукаєте слово (ключ) і отримуєте його визначення (значення).

Нижче наведено деякі випадки, коли ви можете використовувати enumerate зі словниками Python:

A. Перегляд ключів і значень словника

Ви можете використовувати функцію enumerate() для циклічного перегляду ключів і значень словника.

Функція enumerate() додає лічильник до ітерованого об’єкта (наприклад, словників), надаючи вам доступ до поточного значення індексу.

Нижче подано словник:

example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, k in enumerate(example_dict):
    print(i, k)

У цьому коді Python ми спочатку створюємо словник під назвою example_dict. Потім ми використовуємо функцію enumerate() для перебору словника.

Для кожної ітерації ми друкуємо зі словника кількість циклів (яку задає i і починається з 0) і поточний ключ (який дорівнює k).

Python Enumerate: Пояснення з прикладами

B. Поєднання Python Enumerate з функцією Items

Ви також можете отримати доступ до ключів і значень словника за допомогою функції items() разом із enumerate() . Функція items () повертає повторювану колекцію пар ключ-значення як кортежі.

Наведений нижче приклад демонструє, як можна використовувати функцію items() із enumerate() :

example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, (k, v) in enumerate(example_dict.items()):
    print(i, k, v)

У цьому коді ми створюємо словник під назвою , а потім використовуємо функцію enumerate() для перебору пар ключ-значення словника. Під час кожної ітерації ми друкуємо індекс циклу «i», поточний ключ «k» і відповідне йому значення «v».

Python Enumerate: Пояснення з прикладами

Тепер ви добре розумієте, як використовувати функцію enumerate() Python у деяких типових сценаріях. Але enumerate() може запропонувати ще більше.

Давайте зануримося в деякі складні випадки використання enumerate() у наступному розділі!

3 розширені випадки використання Python Enumerate

У цьому розділі ми вийдемо за рамки основ і дослідимо деякі з розширених випадків використання функції enumerate в Python.

Ми розглянемо такі випадки використання:

  1. Використання Enumerate з класами Python

  2. Використання Enumerate з класами Enum

  3. Використання Enumerate для сторнування замовлення

Давайте потрапимо в це!

1. Використання Enumerate з класами Python

Під час програмування на Python ви можете зіткнутися з ситуаціями, коли вам захочеться використовувати enumerate із власними класами.

Щоб досягти цього, ваш клас повинен реалізувати метод iter() , який дозволяє йому бути ітерованим.

Розглянемо клас Color , який зберігає назви кольорів і пов’язані з ними шістнадцяткові значення:

class Color:
    def __init__(self, colors: dict):
        self.colors = colors

    def __iter__(self):
        return iter(self.colors.items())

colors = Color({"red": "#FF0000", "green": "#00FF00", "blue": "#0000FF"})

for index, (name, hex_value) in enumerate(colors):
    print(f"{index}: {name} => {hex_value}")

У цьому коді ми створюємо клас Color, який приймає словник назв кольорів і відповідних їм шістнадцяткових значень.

Коли ви використовуєте enumerate() у циклі, він надає індекс разом із кожною парою ключ-значення. Це дозволяє друкувати індекс, назву кольору та його шістнадцяткове значення у форматованому рядку.

Python Enumerate: Пояснення з прикладами

2. Використання Python Enumerate з класами Enum

Python постачається з вбудованим класом Enum , який дозволяє створювати типи перерахувань із автоматично присвоєними цілими значеннями.

Наприклад, подивіться на такий код:

from enum import Enum, auto

class Direction(Enum):
    NORTH = auto()
    EAST = auto()
    SOUTH = auto()
    WEST = auto()

for index, direction in enumerate(Direction):
    print(f"{index}: {direction.name} => {direction.value}")

У цьому сценарії ми визначаємо напрямок перерахування з чотирма елементами (ПІВНІЧ, СХІД, ПІВДЕНЬ і ЗАХІД) за допомогою модуля enum Python. Функція auto() автоматично призначає значення кожному члену.

Коли ви використовуєте enumerate() у циклі, він надає індекс разом із кожним членом перерахування. Це дозволяє роздрукувати індекс, ім’я члена та його автоматично призначене значення у відформатованому рядку.

Результат цього коду наведено на зображенні нижче:

Python Enumerate: Пояснення з прикладами

3. Використання Python Enumerate для реверсування замовлення

У деяких випадках ви можете перерахувати елементи у зворотному порядку. Ви можете досягти цього, використовуючи вбудовану функцію reversed() у поєднанні з enumerate() .

У наступному прикладі показано перерахування елементів у зворотному порядку:

my_list = ["apple", "banana", "cherry"]

for index, item in enumerate(reversed(my_list)):
    print(f"{index}: {item}")

У цьому коді ми повторюємо зворотну версію my_list за допомогою enumerate(). Це надає вам індекс і елемент зі зворотного списку в кожній ітерації. Це дозволяє друкувати індекс і елемент у відформатованому рядку.

Python Enumerate: Пояснення з прикладами

Reversed () не змінюватиме вихідну послідовність; він створює новий ітератор, який представляє елементи у зворотному порядку.

Щоб дізнатися більше про функції в Python, перегляньте таке відео:

Заключні думки

Продовжуючи свою подорож Python, освоєння функції enumerate() є обов’язковим. Це інструмент, який покращує читабельність і ефективність коду.

Використовуючи enumerate(), ви можете безперешкодно отримувати доступ як до індексу, так і до значення у своїх циклах, зменшуючи потребу в лічильниках або індексуванні. Це спрощує ваш код і робить його більш пітонічним.

Якщо ви переглядаєте списки, кортежі, рядки чи словники, enumerate() виявиться цінним інструментом. Розуміючи та практикуючись із enumerate(), ви зробите значний крок у вдосконаленні своїх навичок програмування на Python!


Поле пошуку PowerApps: як додати та налаштувати

Поле пошуку PowerApps: як додати та налаштувати

Дізнайтеся, як створити поле пошуку PowerApps з нуля та налаштувати його відповідно до загальної теми вашої програми.

Приклад SELECTEDVALUE DAX – вибір розділювача врожаю

Приклад SELECTEDVALUE DAX – вибір розділювача врожаю

Збирайте або фіксуйте значення в мірі для повторного використання в іншій мірі для динамічних обчислень за допомогою SELECTEDVALUE DAX у LuckyTemplates.

Історія версій у списках SharePoint

Історія версій у списках SharePoint

Дізнайтеся, як історія версій у SharePoint може допомогти вам побачити еволюцію певних даних і скільки змін вони зазнали.

Вибір шістнадцяткових кодів кольорів для звітів LuckyTemplates

Вибір шістнадцяткових кодів кольорів для звітів LuckyTemplates

Ось інструмент для створення звітів і візуальних матеріалів, засіб вибору шістнадцяткових кодів кольорів, за допомогою якого можна легко отримати кольори для звітів LuckyTemplates.

Динамічний роздільник дат у LuckyTemplates із використанням таблиці Менделєєва

Динамічний роздільник дат у LuckyTemplates із використанням таблиці Менделєєва

Ви можете легко відобразити діапазон дат як роздільник у своєму звіті за допомогою таблиці періодів. Використовуйте M-код, щоб створити динамічний роздільник дат у LuckyTemplates.

Таблиці пропорцій і частот в Excel

Таблиці пропорцій і частот в Excel

Збирався зануритися в частотні таблиці в Excel, а також у таблиці пропорцій. Добре подивіться, що це таке і коли їх використовувати.

Як інсталювати DAX Studio та табличний редактор у LuckyTemplates

Як інсталювати DAX Studio та табличний редактор у LuckyTemplates

Дізнайтеся, як завантажити та інсталювати DAX Studio та Tabular Editor 3 і як налаштувати їх для використання в LuckyTemplates і Excel.

Візуалізація карти форми LuckyTemplates для просторового аналізу

Візуалізація карти форми LuckyTemplates для просторового аналізу

Цей блог містить візуалізацію Shape Map для просторового аналізу в LuckyTemplates. Я покажу вам, як ви можете ефективно використовувати цю візуалізацію з її функціями та елементами.

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

У цьому підручнику я демонструю унікальну ідею щодо фінансової звітності, яка полягає в розподілі результатів для попереднього визначення шаблонів таблиць у LuckyTemplates.

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Створіть показники DAX у LuckyTemplates, використовуючи наявні показники або формули. Це те, що я називаю технікою розгалуження міри.