Python3 Функция enumerate()

Python3 内置函数Встроенные функции Python3


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

Использованиеenumerate()Она позволяет удобно одновременно получать как индекс (позицию), так и сам элемент, избегая использования дополнительной переменной-счётчика.

Пояснение слова: enumerateОзначает "enumerate", обозначая перечисление по одному.


Базовый синтаксис и параметры

Формат синтаксиса

enumerate(iterable, start=0)

Описание параметра

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

Описание функций

  • Возвращаемое значение: Возвращает объект enumerate (итератор).
  • Вывод: Каждая итерация возвращает кортеж (индекс, значение).

Примеры

Пример 1: Базовое использование

Пример

# Базовое использование enumerate
fruits = ["яблоко", "банан", "апельсин"]

# Получение индекса и значения
for index, fruit in enumerate(fruits):
    print(f"{index}: {fruit}")

# По умолчанию начинается с 0
print("---")
for index, fruit in enumerate(fruits):
    print(fruit)

Ожидаемый вывод:

0: 苹果
1: 香蕉
2: 橙子
---
0: 苹果
1: 香蕉
2: 橙子

Пояснение к коду:

  1. enumerate возвращает кортежи (индекс, значение).
  2. По умолчанию индекс начинается с 0.

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

Пример

# Начать нумерацию с 1
fruits = ["яблоко", "банан", "апельсин"]

for i, fruit in enumerate(fruits, start=1):
    print(f"Фрукт {i}: {fruit}")

# Начать с 10
print("---")
for i, fruit in enumerate(fruits, start=10):
    print(f"Индекс {i}: {fruit}")

Ожидаемый вывод:

第1个水果: 苹果
第2个水果: 香蕉
第3个水果: 橙子
---
索引 10: 苹果
索引 11: 香蕉
索引 12: 橙子

Параметр start может задавать начальный индекс.

Пример 3: Преобразование в список

Пример

# Преобразовать в список
fruits = ["яблоко", "банан", "апельсин"]
result = list(enumerate(fruits))
print(result)  # Вывод: [(0, 'apple'), (1, 'banana'), (2, 'orange')]

# Преобразовать в словарь (если значения являются строками)
result = dict(enumerate(fruits))
print(result)  # Вывод: {0: 'apple', 1: 'banana', 2: 'orange'}

# С использованием спискового включения
squares = [x**2 for x in range(5)]
indexed_squares = [(i, v) for i, v in enumerate(squares)]
print(indexed_squares)  # Вывод: [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16)]

Ожидаемый вывод:

enumerate можно легко преобразовать в список или словарь.

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

Пример

# Найти индекс элемента
fruits = ["яблоко", "банан", "апельсин", "banana", "apple"]
target = "banana"

for index, fruit in enumerate(fruits):
    if fruit == target:
        print(f"Найден {target} по индексу {index}")
        break

# Найти все совпадения с условием
print("\n"Позиции всех бананов:")
for index, fruit in enumerate(fruits):
    if fruit == "banana":
        print(index, end=" ")  # Вывод: 1 3

# Найти позиции символов в строке
text = "hello"
for i, c in enumerate(text):
    print(f"'{c}' находится на позиции {i}")

Ожидаемый вывод:

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

Пример 5: Работа со словарями

Пример

# enumerate для словаря
person = {"name": "Tom", "age": 20, "city": "Пекин"}

# Итерация по парам ключ-значение словаря (требуется items)
for index, (key, value) in enumerate(person.items()):
    print(f"{index}: {key} = {value}")

# Создать словарь с порядковыми номерами
items = ["a", "b", "c"]
numbered = {i+1: v for i, v in enumerate(items)}
print(numbered)  # Вывод: {1: 'a', 2: 'b', 3: 'c'}

Ожидаемый вывод:

При использовании enumerate со словарём необходимо использовать метод items().


Python3 内置函数Встроенные функции Python3

Другие расширения