Назад к вопросам
Junior
109
questionbank
Что такое функция enumerate в Python?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Функция enumerate() добавляет счетчик к итерируемому объекту и возвращает итератор из пар (счетчик, элемент). Это полезно, когда нужно одновременно получить доступ к элементам коллекции и их индексам.
# Пример использования enumerate() с списком
my_list = ['яблоко', 'банан', 'вишня']
for index, item in enumerate(my_list):
print(f"Индекс: {index}, Элемент: {item}")
# Вывод:
# Индекс: 0, Элемент: яблоко
# Индекс: 1, Элемент: банан
# Индекс: 2, Элемент: вишня
Начальное значение счетчика по умолчанию равно 0, но его можно задать с помощью аргумента start.
# Пример использования enumerate() с заданным начальным значением
my_list = ['яблоко', 'банан', 'вишня']
for index, item in enumerate(my_list, start=1):
print(f"Идентификатор: {index}, Элемент: {item}")
# Вывод:
# Идентификатор: 1, Элемент: яблоко
# Идентификатор: 2, Элемент: банан
# Идентификатор: 3, Элемент: вишня
Функция enumerate() возвращает итератор, поэтому для получения элементов необходимо его итерировать или преобразовать в список/кортеж.
# Преобразование результата enumerate() в список кортежей
enumerated_list = list(enumerate(my_list))
print(enumerated_list)
# Вывод:
# [(0, 'яблоко'), (1, 'банан'), (2, 'вишня')]
enumerate() более "питонично" и читаемо, чем использование range(len(...)) для итерации по индексам.
Сравнение подходов:
enumerate() |
range(len(...)) |
|---|---|
| Более читаемый | Менее явный |
| Более эффективный (не требует получения длины) | Менее эффективный (требует получения длины) |
| Прямой доступ к элементу и индексу | Доступ по индексу требует дополнительной операции |
# Использование range(len()) - менее предпочтительный способ
my_list = ['яблоко', 'банан', 'вишня']
for i in range(len(my_list)):
print(f"Индекс: {i}, Элемент: {my_list[i]}")