2013-10-09 29 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