Задать вопрос
@kofon
Я человек

Python. xrange и range?

Всё ли правильно?

две строчки делают то же самое
# tuple - возвращает кортеж
tuple(range(5))
tuple(xrange(5))


в первой сначала вызывается range, и кормится кортежу
во второй вызов tuple, а потом (лениво) вычисляется xrange

Итог один?
  • Вопрос задан
  • 405 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@raiboon
В первом случае:
- вызывается range
- создается в памяти список
- вызывается tuple, который создает тупл

Во втором:
- вызывается range
- создается итератор
- вызывается tuple, который создает тупл

Итог один.
Ответ написан
Комментировать
suguby
@suguby
программист, python, django, mysql, git, hg, linux
xrange - генератор, то есть отдает каждое значение по требованию. экономит память для циклов с большими N.
в приведенном примере выгоды не дает, так как конструктор tuple() все равно засунет все значения в память.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
SpectrumData Екатеринбург
от 200 000 до 300 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
18 янв. 2025, в 10:04
50000 руб./за проект
18 янв. 2025, в 07:20
50000 руб./за проект
18 янв. 2025, в 03:12
1000 руб./за проект