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

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

相關文章
相關標籤/搜索