range和arange的區別

2022-08-27 20:03:14 字數 627 閱讀 8201

首先得說明一下,只有在python2中才有xrange和range,python3中沒有xrange,並且python3中的range和python2中的range有本質的區別。所以這兒說的range和xrange的區別是只針對python2的。

在py2中,range得到的是乙個列表,即

x = range(0, 5)

print(type(x)) # 列印x的型別,結果是list

print(x) # 結果是[0,1,2,3,4]

xrange得到的是乙個生成器物件, 即

x = xrange(0, 5)

print(type(x)) # 輸出型別,結果為乙個生成物件

print(x) # 輸出x, 結果為xrange(0,5)

那麼,python3中為什麼沒有了range了呢(額,這個怎麼描述呢,是有range,但是這個range其實是py2中的xrange,而不是range),因為使用生成器可以節約記憶體。比如現在有個**是for i in range(0, 10000),如果還是使用py2中的range的話,那你就會得到乙個0到9999的乙個列表,這個將會占用你很大的空間,但是使用生成器的話,就會節省很大的資源。

它們的使用都是一樣的,比如都可以用for迴圈遍歷所有的值

range和xrange的區別

range 函式說明 range start,stop step 根據start與stop指定的範圍以及step設定的步長,生成乙個序列。range示例 range 5 0,1,2,3,4 range 1 5 1,2,3,4 range 0,7,2 0,2,4,6 xrange 函式說明 用法與ra...

xrange和range的區別

內建函式range 返回乙個list xrange 返回乙個xrange物件,xrange物件是乙個generator,而且是乙個sequence python type range 10 list type xrange 10 xrange dir xrange class delattr doc...

range和xrange的區別

只有在python2中才有xrange和range,python3中沒有xrange,並且python3中的range其實是py2中的xrange。下面說說py2的range和xrange的區別 在py2中,range得到的是乙個列表 x range 0,5 print type x 結果是list...