學習Python的時候,我們經常會看到xrange和range,那麼Python中xrange和range有什麼區別?跟着小編來看看吧。
首先要說明一下,只有在Python2中才有Xrange和range;Python3中沒有xrange,並且Python3中的range和Python2中的range有本質的區別,所以說這裏的區別,主要針對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)
共同點:
它們的使用都是一樣的,比如都可以用for循環遍歷所有的值
Python3中爲什麼只有range呢?這個range其實就是py2中的xrange,而不是range,因爲使用生成器可以節約內存。
比如:代碼是for i in range(0,1000),如果使用py2中的range,得到的結果是0到999的列表,會佔用很大空間;但是如果使用生成器的話,就會節省很大的資源。