Что такое self в Python: примеры из реального мира
Что такое self в Python: примеры из реального мира
Работа со списками и другими итерируемыми объектами — обычная задача в программировании на Python . Иногда вам может понадобиться пройтись по этим итерациям, одновременно отслеживая индекс или количество текущего элемента. Вот тут и приходит на помощь встроенная в Python функция enumerate().
Функция enumerate() в Python предоставляет вам удобный способ доступа как к индексу элемента, так и к самому элементу, когда вы перебираете список или любой итерируемый объект.
Эта функция делает ваш код более Pythonic , читабельным и эффективным. Это позволяет вам перебирать элементы и получать как их индекс, так и значение. Вместо ручной инициализации и увеличения счетчика в цикле вы можете положиться на enumerate(), который сделает всю работу за вас.
В этой статье вы узнаете о встроенной в Python функции enumerate(), ее важности в вашем коде Python и вариантах ее использования.
Давайте погрузимся в это!
Оглавление
Что такое функция перечисления Python?
Представьте, что вы работаете со структурой данных списка и хотите что-то сделать с каждым элементом, но вам также необходимо знать позицию элемента в списке.
Без enumerate() Python вы можете решить использовать переменную-счетчик, которую вы увеличиваете в каждой итерации цикла. Но этот подход может быть подвержен ошибкам, и он не очень «питоновский».
Enumerate — это встроенная в Python функция, которая позволяет выполнять итерацию по итерируемым объектам, отслеживая при этом индекс текущего элемента.
Теперь, когда вы поняли, что такое функция enumerate() в Python, давайте перейдем к синтаксису функции enumerate() в Python в следующем разделе!
Каков синтаксис функции перечисления Python?
Синтаксис функции определяет, как вы должны использовать эту функцию в своем коде, в том числе какие аргументы она принимает и что возвращает.
Функция enumerate () имеет следующий синтаксис:
enumerate(, start=0)
: это обязательный параметр, который может быть любым итерируемым объектом Python, например списком или кортежем.
start : этот второй параметр является необязательным параметром, который указывает начальное значение счетчика. По умолчанию установлено значение 0.
Возвращаемое значение функции enumerate() — это перечисляемый объект, который представляет собой итератор, имеющий пары (индекс, элемент) для каждого элемента в данном итерируемом объекте.
Вы можете использовать этот итератор в цикле for для одновременного доступа к индексу и элементу.
В следующем примере показано, как вы можете использовать функцию enumerate() со списком:
fruits = ['apple', 'banana', 'cherry']
for index, item in enumerate(fruits):
print(index, item)
В этом примере enumerate() перебирает перечисляемые объекты, т. е. список фруктов , и присваивает индекс каждому элементу, начиная с 0.
Затем цикл for распаковывает индекс и элемент перечисляемого объекта. Это позволяет выполнять операции на основе как индекса, так и значения элемента.
Мы используем функцию печати для вывода индекса и элемента на экран. Вывод кода показан на изображении ниже:
В выводе видно, что начальный индекс равен 0. Это значение индекса по умолчанию, автоматически назначаемое интерпретатором Python.
Однако вы также можете указать другое начальное значение для счетчика, указав необязательный параметр start , как показано в коде ниже:
for index, item in enumerate(fruits, start=1):
print(index, item)
Вывод будет аналогичен приведенному выше. Единственная разница будет заключаться в том, что индекс теперь начинается с 1.
Итак, теперь вы разобрались с синтаксисом функции enumerate() в Python. Но, как и в случае с любым инструментом, важно знать, когда и где его использовать.
Вот почему мы собираемся изучить некоторые распространенные варианты использования функции enumerate() в следующем разделе!
5 вариантов использования функции перечисления в Python
Функция перечисления в Python широко используется в сценариях, где для программиста важны как индекс, так и значение итерируемого объекта.
Ниже мы перечислили некоторые распространенные варианты использования функций перечисления в Python.
1. Как использовать перечисление со списками Python
В Python список — это встроенная структура данных, позволяющая хранить несколько элементов в одной переменной. Думайте о списке как о контейнере, куда вы можете поместить разные элементы, и они сохранят свой порядок.
Функцию 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}.")
Вывод этого кода показан на изображении ниже:
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]).
В результате каждое число в исходном списке удваивается, как показано на изображении ниже:
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. Затем мы перебираем list1, используя цикл for с enumerate(), который предоставляет индекс (i) и значение каждого элемента.
Если текущий элемент в списке1 не соответствует соответствующему элементу в списке2, он печатает индекс различия и отличающиеся значения из обоих списков.
Результат этого кода показан ниже:
2. Как использовать перечисление с кортежами Python
Кортеж в Python — это упорядоченный набор элементов, похожий на список. Единственное отличие состоит в том, что кортеж неизменяем, то есть вы не можете изменить его содержимое после создания.
Ниже приведены некоторые случаи, когда вы можете использовать enumerate с кортежами Python.
А. Использование 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}")
Этот код напечатает «манго найдено в позиции 2», потому что «манго» находится в индексе 2 в кортеже.
B. Использование Python Enumerate() для создания словаря из кортежа
Если у вас есть кортеж и вам нужно преобразовать его в словарь, функция Python enumerate() может стать вашим незаменимым инструментом.
Пример кода показывает, как вы можете создать словарь из кортежа, используя enumerate:
fruits = ('apple', 'banana', 'mango', 'grape', 'orange')
fruit_dict = {i: fruit for i, fruit in enumerate(fruits)}
print(fruit_dict)
Этот код напечатает словарь, где ключи — это индексы, а значения — это элементы кортежа.
3. Как использовать Enumerate со словарями Python
В Python словарь — это изменяемый неупорядоченный набор пар ключ-значение , где каждый ключ должен быть уникальным. Думайте об этом как о реальном словаре: вы ищете слово (ключ) и получаете его определение (значение).
Ниже приведены некоторые случаи, когда вы можете использовать enumerate со словарями Python:
A. Перебор ключей и значений словаря
Вы можете использовать функцию enumerate() для циклического перебора ключей и значений словаря.
Функция enumerate() добавляет счетчик к итерируемому объекту (например, к словарям), позволяя вам получить доступ к текущему значению индекса.
Ниже приведен пример функции перечисления со словарем Python :
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) из словаря.
B. Объединение перечисления Python с функцией 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)
В этом коде мы создаем словарь с именем example_dict , затем используем функцию enumerate() для перебора пар ключ-значение словаря. Во время каждой итерации мы печатаем индекс цикла «i», текущий ключ «k» и соответствующее ему значение «v».
Теперь у вас есть четкое представление о том, как использовать функцию Python enumerate() в некоторых распространенных сценариях. Но enumerate() может предложить еще больше.
Давайте углубимся в некоторые расширенные варианты использования enumerate() в следующем разделе!
3 продвинутых варианта использования Python Enumerate
В этом разделе мы выйдем за рамки основ и рассмотрим некоторые расширенные варианты использования функции перечисления в Python.
Мы рассмотрим следующие варианты использования:
Использование перечисления с классами Python
Использование перечисления с классами перечисления
Использование Enumerate для изменения порядка
Давайте погрузимся в это!
1. Использование перечисления с классами 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() в цикле, он предоставляет индекс ��месте с каждой парой ключ-значение. Это позволяет вам печатать индекс, название цвета и его шестнадцатеричное значение в форматированной строке.
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}")
В этом скрипте мы определяем перечисление Direction с четырьмя членами (СЕВЕР, ВОСТОК, ЮГ и ЗАПАД) с помощью модуля Python enum. Функция auto() автоматически присваивает значение каждому элементу.
Когда вы используете 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(). Это предоставляет вам индекс и элемент из перевернутого списка на каждой итерации. Это позволяет вам печатать индекс и элемент в форматированной строке.
Функция reversed () не изменит исходную последовательность; он создает новый итератор, который представляет элементы в обратном порядке.
Чтобы узнать больше о функциях в Python, посмотрите следующее видео:
Последние мысли
По мере того, как вы продолжаете свое путешествие по Python, вам необходимо освоить функцию enumerate(). Это инструмент, который повышает читабельность и эффективность кода.
Используя enumerate(), вы можете беспрепятственно обращаться как к индексу, так и к значению в ваших циклах, уменьшая потребность в переменных-счетчиках или индексировании. Это упрощает ваш код и делает его более Pythonic.
Перебираете ли вы списки, кортежи, строки или словари, enumerate() окажется ценным инструментом. Поняв и попрактиковавшись в enumerate(), вы сделаете значительный шаг в оттачивании своих навыков программирования на Python!
Что такое self в Python: примеры из реального мира
Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.
В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.
В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.
В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.
Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.
Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.
В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.
Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.
Что такое шлюз LuckyTemplates? Все, что тебе нужно знать