Python學習系列之 xrange和range的區別!

老男孩IT教育機構發表於2021-02-02

  學習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的列表,會佔用很大空間;但是如果使用生成器的話,就會節省很大的資源。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2755558/,如需轉載,請註明出處,否則將追究法律責任。

相關文章