Встречается на собеседованиях • сегодня

Почему range возвращает генератор в Python

В Python range не является генератором, а возвращает специальный объект типа range. Это неизменяемая последовательность чисел, которая генерирует элементы по требованию, но обладает ключевыми отличиями от генераторов:

  1. Повторное использование - range можно итерировать многократно, а генератор одноразовый.
  2. Операции с последовательностью - поддерживает len(), индексацию, проверку вхождения (in).
  3. Эффективность - хранит только start, stop, step, не занимая память под все числа.

Пример:

python
r = range(5)
print(list(r))  # [0, 1, 2, 3, 4]
print(3 in r)   # True
print(r[2])     # 2

Генератор же создаётся функцией с yield и не поддерживает эти операции. range оптимизирован именно для работы с числовыми последовательностями.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы