Python range( ) is not giving me a list [duplicate

2019-02-18 13:05发布

问题:

This question already has an answer here:

  • Python 3 turn range to a list 8 answers

Having a beginner issue with Python range.

I am trying to generate a list, but when I enter:

def RangeTest(n):

    #

    list = range(n)
    return list

print(RangeTest(4))

what is printing is range(0,4) rather than [0,1,2,3]

What am I missing?

Thanks in advance!

回答1:

You're using Python 3, where range() returns an "immutable sequence type" instead of a list object (Python 2).

You'll want to do:

def RangeTest(n):
    return list(range(n))

If you're used to Python 2, then range() is equivalent to xrange() in Python 2.


By the way, don't override the list built-in type. This will prevent you from even using list() as I have shown in my answer.



标签: python range