Назад к вопросам
Junior — Middle
66
Какое отличие между объектами типа Sequence и Iterable в Python?
Ответ от нейросети
sobes.tech AI
В Python Iterable — это любой объект, по которому можно итерироваться, то есть получить итератор с помощью функции iter(). Примером iterable может быть список, кортеж, строка, словарь и даже файл.
Sequence — это подтип iterable, который поддерживает упорядоченный доступ к элементам по индексу и обычно имеет фиксированную последовательность элементов. Последовательности реализуют методы __getitem__ и __len__, что позволяет обращаться к элементам по индексу и узнавать длину.
Иными словами:
- Все объекты типа Sequence являются Iterable.
- Не все Iterable являются Sequence (например, множества и генераторы — iterable, но не sequence).
Пример:
from collections.abc import Iterable, Sequence
print(issubclass(list, Iterable)) # True
print(issubclass(list, Sequence)) # True
print(issubclass(set, Iterable)) # True
print(issubclass(set, Sequence)) # False
Таким образом, Sequence — это упорядоченный и индексируемый iterable.