python 2, python 3, xrange, range

Во втором питоне можно было получить список от 0 до 9 простым способом: print(range(10)), но в третьем питоне на экране оказывается совсем не список.
Почему?
Зачем?
Как, все же, получить список?

One thought on “python 2, python 3, xrange, range

  1. Во втором питоне range формировал последовательность в памяти, а xrange возвращал генератор (т.е. не формировал список в памяти сразу, а отдавал значения по мере необходимости). В третей версии питона range стал работать так же, как zrange, т.е. создавать генератор, а не список в памяти.
    Если вам очень нужен именно список, то это легко сделать так:

    print (list(range(10)))
    

    Сделано для ускорения работы и для экономии памяти.

    Аналогично, если нужно посмотреть на результат работы функции map, то нужно «развернуть» генератор в список (или перебрать его значения циклом).

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *