簡單說說range和xrange的區別

2021-09-18 07:38:44 字數 790 閱讀 7230

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

1. 不同點

range

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

x = range(0, 5)

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

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

xrange

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的乙個列表,這個將會占用你很大的空間,但是使用生成器的話,就會節省很大的資源。

2. 共同點

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

python基礎之range和xrange

range 開始值,結束值,步長 開始值預設為0,步長預設為1 range返回的是乙個序列,以列表的形式來儲存數字 xrange返回的是乙個生成器物件,是以物件的形式來儲存這些數 下面range和xrange遍歷的值看起來相同,其實是不同的,range事把列表中的數進行遍歷,一下子開闢一大塊記憶體空...

簡單說說MPEG

mpeg 1 mpeg 2和mpeg 4。mpeg 3 原本目標是為高畫質晰度電視 hdtv 設計,隨後發現mpeg 2已足夠hdtv應用,故mpeg 3的研發便中止。音訊物件 video audio objects 的編碼 3d內容 低位元率編碼 low bitrate encoding 和數字版...

簡單說說委託

在c 中,大多時候,方法的引數是資料,但有時我們會想將 方法 作為引數,這時,我們就可以用委託。委託一般情況下會和事件一起使用,事件說白了也是特殊的乙個方法。先看個例子吧 有很多方法,比如求平方,求階乘 想讓使用者輸入值,求該值的平方,階乘 using system using system.col...