@kofon
Я человек

Python. xrange и range?

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

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


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

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

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

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

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

Войти через центр авторизации
Похожие вопросы