Что такое итерабельный объект?
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")