Некоторые отличия использования функции range в Python 2 и Python 3:
- Тип возвращаемого объекта. 3 В Python 2 функция range() возвращает список. 3 В Python 3 — итерируемую последовательность, а не список. 3
- Генерация чисел. 2 В Python 2 функция range() выдаёт все числа сразу и помещает их в оперативную память. 2 При генерации длинных последовательностей это увеличивает расход памяти и время работы. 2 Функция xrange() в Python 2 и range() в Python 3 не генерируют всю последовательность сразу, а выдают нужные значения по мере необходимости, при переходе к следующей итерации цикла. 2
- Работа с float. 1 Функция range() в Python 2 не поддерживает тип float. 1 В Python 3 можно создать список, передав генератор, возвращённый функцией list(). 1
Таким образом, в Python 2 для работы с большими диапазонами рекомендуется использовать функцию xrange(), а в Python 3 — range(). 4