2013-10-09 30 views
3

有Python范围的初学者问题。Python范围()不给我一个列表

我想生成一个列表,但是当我进入:

def RangeTest(n): 

    # 

    list = range(n) 
    return list 

print(RangeTest(4)) 

什么是打印range(0,4)而非[0,1,2,3]

我缺少什么?

在此先感谢!

+4

不要使用'list'作为变量名称,除非您特别要掩盖内置类型。 –

回答

12

您正在使用Python 3,其中range()返回“不可变序列类型”而不是列表对象(Python 2)。

你想做的事:如果你使用Python的2

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

,然后range()相当于xrange()在Python 2


顺便说一句,不要” t覆盖list内置类型。这会阻止你甚至使用list(),正如我在答案中所显示的那样。

+0

啊,刚刚意识到列表内置了... – R14

+0

谢谢!解决了我的问题... – R14

+0

@ R14不客气:)。请务必[接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work):) – TerryA