В книге [Learning Python] утверждается, что диапазон является генератором - это ложное утверждение?

1

Для обсуждения я задам следующий вопрос, основанный на Python 3.6.1

Я прочитал из книги [Learning Python] (5-е издание, глава 20, стр. 614), что:

Как мы видели, фундаментальные встроенные инструменты, такие как диапазон, карта, словарные ключи и даже файлы, теперь являются генераторами, поэтому вы должны быть знакомы с концепцией, даже если вы не создаете собственных собственных генераторов.

Это ложное утверждение?

Я думал, что объект, являющийся итератором, является необходимым, но не достаточным условием, чтобы он был генератором. То есть, итератор генераторов всегда является генератором.

Однако клавиши диапазона и словаря являются итерабельными, но они НЕ являются их собственными итераторами. Если они не являются итераторами, как они могут быть генераторами?

Теги:
python-3.x
iterator
generator
iterable

1 ответ

4
Лучший ответ

Иногда люди используют "генератор" для обозначения ленивых итераций, хотя это не точное определение. В Python 3 диапазон является ленивым итерабельным.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню