Функция enumerate( ) в Python

Обложка к статье "Функция enumerate( ) в Python"

Функция enumerate в Python используется для перебора итерируемых объектов (списки, кортежи, строки и т.д.) с возможностью получения как индекса, так и соответствующего элемента. Это удобный способ добавить счетчик итерации при работе с циклами.

Синтаксис

enumerate(iterable, start=0)

Параметры

  • iterable: Итерируемый объект, который необходимо перебрать.
  • start: Необязательный параметр. Начальное значение счетчика. По умолчанию равно 0.

Возвращаемое значение

Функция возвращает итератор, который генерирует кортежи, каждый из которых содержит индекс и соответствующий элемент из итерируемого объекта.

Примеры использования

Пример 1: Перебор списка с индексами

fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
    print(index, fruit)

Вывод:

0 apple
1 banana
2 cherry

Пример 2: Указание начального значения счетчика

fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits, start=1):
    print(index, fruit)

Вывод:

1 apple
2 banana
3 cherry

Пример 3: Перебор строки

text = "hello"
for index, char in enumerate(text):
    print(index, char)

Вывод:

0 h
1 e
2 l
3 l
4 o

Пример 4: Перебор кортежа с указанием начального значения

tuple_data = ('a', 'b', 'c')
for index, value in enumerate(tuple_data, start=100):
    print(index, value)

Вывод:

100 a
101 b
102 c

Практическое применение

Функция enumerate полезна в различных ситуациях, где необходимо одновременно получать индекс и значение элемента.

Пример 5: Изменение элементов списка с использованием индексов

numbers = [10, 20, 30, 40]
for index, value in enumerate(numbers):
    numbers[index] = value + 5
print(numbers)

Вывод:

[15, 25, 35, 45]

Пример 6: Создание словаря из списка

names = ['Alice', 'Bob', 'Charlie']
name_dict = {index: name for index, name in enumerate(names)}
print(name_dict)

Вывод:

{0: 'Alice', 1: 'Bob', 2: 'Charlie'}

Пример 7: Одновременный перебор двух списков

list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]
for index, (val1, val2) in enumerate(zip(list1, list2)):
    print(index, val1, val2)

Вывод:

0 a 1
1 b 2
2 c 3

Примечания

  1. Производительность: Функция enumerate использует ленивую оценку, что делает ее эффективной при работе с большими итерируемыми объектами.
  2. Сочетание с другими функциями: enumerate хорошо сочетается с другими встроенными функциями Python, такими как zip, map, и т.д.

Оцените статью
( Пока оценок нет )
Обучение Python
Добавить комментарий