Назад к вопросам
Junior
117
questionbank

Что такое итерабельный объект?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Итерабельный объект — это объект, который можно перебирать, то есть получать его элементы по одному. В Python таким свойством обладают объекты, которые либо поддерживают метод __iter__(), возвращающий итератор, либо поддерживают метод __getitem__(), принимающий целочисленные индексы (начиная с 0).

Примеры итерабельных объектов в Python:

  • Строки (str)
  • Списки (list)
  • Кортежи (tuple)
  • Множества (set)
  • Словари (dict) (по умолчанию итерируются по ключам)
  • Диапазоны (range)
  • Файловые объекты

Итерабельные объекты используются в циклах for, генераторах списков, генераторах словарей, генераторах множеств, выражениях-генераторах, а также в функциях, таких как sum(), min(), max(), sorted().

Связь между итерабельными объектами и итераторами: Итерабельный объект можно перебрать, а итератор — это объект, который выполняет сам процесс перебора. Метод __iter__() итерабельного объекта возвращает итератор для этого объекта. Итератор имеет метод __next__(), который возвращает следующий элемент последовательности. Когда элементов больше нет, __next__() возбуждает исключение StopIteration.

Пример использования итерабельного объекта в цикле for:

# итерабельный объект - список
my_list = [1, 2, 3]

# цикл for работает с итерабельным объектом
for item in my_list:
    print(item)

Пример явного получения итератора:

# итерабельный объект - список
my_list = [1, 2, 3]

# получаем итератор из итерабельного объекта
my_iterator = iter(my_list)

# получаем элементы с помощью метода __next__()
try:
    print(next(my_iterator)) # 1
    print(next(my_iterator)) # 2
    print(next(my_iterator)) # 3
    print(next(my_iterator)) # StopIteration here
except StopIteration:
    print("Iteration finished")