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

Python. xrange и range?

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

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


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

Итог один?
  • Вопрос задан
  • 406 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@raiboon
В первом случае:
- вызывается range
- создается в памяти список
- вызывается tuple, который создает тупл

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

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

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

Похожие вопросы