Python 3 uses iterators for a lot of things where python 2 used lists.The docs give a detailed explanation including the change to range
.
The advantage is that Python 3 doesn’t need to allocate the memory if you’re using a large range iterator or mapping.
For example
for i in range(1000000000): print(i)
requires a lot less memory in python 3.
If you do happen to want Python to expand out the list all at once you can
list_of_range = list(range(10))