學習Python的時候,咱們常常會看到xrange和range,那麼Python中xrange和range有什麼區別?跟着小編來看看吧。學習
首先要說明一下,只有在Python2中才有Xrange和range;Python3中沒有xrange,而且Python3中的range和Python2中的range有本質的區別,因此說這裏的區別,主要針對Python2來講一下。對象
不一樣點:內存
在py2中,range獲得的是一個列表,即資源
X=range(0,5)for循環
Print(type(X))#打印X的類型,結果是listclass
Print(X)#結果是[0,1,2,3,4]循環
Xrange獲得的是一個生成器對象,即遍歷
X=xrange(0,5)生成器
Print(type(X))#輸出類型,結果爲一個生成對象di
Print(X)#輸出X,結果爲xrange(0,5)
共同點:
它們的使用都是同樣的,好比均可以用for循環遍歷全部的值
Python3中爲何只有range呢?這個range其實就是py2中的xrange,而不是range,由於使用生成器能夠節約內存。
好比:代碼是for i in range(0,1000),若是使用py2中的range,獲得的結果是0到999的列表,會佔用很大空間;可是若是使用生成器的話,就會節省很大的資源。