1. 程式人生 > >xrange和range的區別

xrange和range的區別

原文連結:http://superwind.iteye.com/blog/701045

內建函式range()返回一個list;

xrange()返回一個xrange物件,xrange物件是一個generator,而且是一個sequence

Python程式碼  收藏程式碼
  1. >>> type(range(10))  
  2. <type 'list'>  
  3. >>> type(xrange(10))  
  4. <type 'xrange'>  
  5. >>> dir(xrange)  
  6. ['__class__''__delattr__''__doc__'
    '__getattribute__''__getitem__''__hash__''__init__''__iter__''__len__''__new__''__reduce__''__reduce_ex__''__repr__''__reversed__''__setattr__''__str__']  

因此,當需要生成大範圍資料時(如百萬級),range會一次性的生成所有的資料,並以list形式返回,這樣就會佔用大量的記憶體;而xrange是一個generator,每次按需生成一個值,只佔用少量的記憶體空間。

通常,range和xrange經常用在for迴圈中,當for不需要遍歷所有的元素(如含有break語句),尤其只遍歷起始的少量元素時,此時xrang就有效能優勢,因為它不用像range那樣一次性地生成所有的元素,造成浪費。

Shell程式碼  收藏程式碼
  1. [email protected]:~$ python -m timeit 'for i in range(1000000):pass'  
  2. 10 loops, best of 352.6 msec per loop  
  3. [email protected]:~$ python -m timeit 'for i in xrange(1000000):pass'  
  4. 10 loops, best of 328.8 msec per loop  

相關推薦

Python細說 xrange range區別

Python版本2.X: range的返回值是list,這意味著記憶體將會分佈相應的長度的空間給list。 xrange的返回值是一個生成器,有利於節省記憶體空間。 Python版本3.X: 在3.X版本中,Python對range函式做了優化,並且取消了xrange函式。 3.X版本中,range

xrangerange的使用區別

range 函式說明:range([start,] stop[, step]),根據start與stop指定的範圍以及step設定的步長,生成一個列表。 eg: >>> range(10) [0, 1, 2, 3, 4, 5, 6

[Python] xrangerange的使用區別

原創文章,歡迎轉載。轉載請註明:轉載自 祥的部落格 range 函式說明:range([start,] stop[, step]),根據start與stop指定的範圍以及step設定的步長,

xrangerange區別

原文連結:http://superwind.iteye.com/blog/701045 內建函式range()返回一個list; xrange()返回一個xrange物件,xrange物件是一個generator,而且是一個sequence Python程式碼 

python中xrangerange(轉)

log item .py 對象 nbsp net range all file 說到序列,我們第一想到的是一組有序元素組成的集合。同時,每個元素都有唯一的下標作為索引。 在Python中,有許多內界的序列。包括元組tuple,列表list,字符串str等。上面提到的序列

怎樣去使用Python的xrangerange

在Python裡面,有兩個非常簡便的方法去構造列表,或者去用於構造整數迴圈,這兩個方法就是xrange和range,也許你已經猜到了。 下面我們就來說說兩者的不同之處。 開始之前,我們先來討論一下xrange和range的區別。 在大多數情況下,xra

python中xrangerange

說到序列,我們第一想到的是一組有序元素組成的集合。同時,每個元素都有唯一的下標作為索引。 在Python中,有許多內界的序列。包括元組tuple,列表list,字串str等。上面提到的序列型別(list,tuple,str)有一個共同的特點,就是當序列物件建立

Python中 range xrange的詳細區別

range    函式說明:range([start,] stop[, step]),根據start與stop指定的範圍以及step設定的步長,生成一個序列。range示例:  >>> range(5)[0,1,2,3,4]>>> ran

python中range函式xrange函式的區別

Range: range([start,] stop[, step]),根據start與stop指定的範圍以及step設定的步長,生成一個序列。 Xrange: 用法與range完全相同,所不同的是

rangexrange randrange 的用法區別

概括起來,我的理解: 下面是具體介紹: 1. range([start], stop[, step]) 返回等差數列。構建等差數列,起點是start,終點是stop,但不包含stop,公差是step。start 和 step 是可選項,沒給出

Python中rangexrange函式的區別

range([start,] stop[, step]),根據start與stop指定的範圍以及step設定的步長,生成一個序列。比如:1>>> range(5)2[0, 1, 2, 3, 4]3>>> range(1,5)4[1, 2, 

Python breakcontinue的區別 range的使用

次循環 instance col rom post rabl light brush iter # n = 0 # while n < 10: # if n > 3: # break # print(n) # n +=

python : xrangerange區別

只在python2中有的 xrange, 對於這個來說便是個生成器 GITHUB address: https://github.com/CRH0 #python2 >>> a = xrange(1,5) >>> type(a) <type 'xra

xrangerange之間的區別

對於這兩個好像功能都差不多,這兩個經常會被搞混,所以今天一定要把這個完全弄清楚。 首先我們看看range: range([start,] stop[, step]),根據start與stop指定的範圍以及step設定的步長,生成一個序列。注意這裡是生成一個序列。 xran

關於python2中的xrangepython3中的range.........

最近幾天改網上的程式碼(好吧,我只是個搬運工)。。。然後,有python2的程式碼xrange處在python3的地方報錯,然後我改成了range不報錯了,然後,實驗室的妹子問起原因,然後,我。。。。。。於是,仔細查了查他們之間的區別 先看結果: Pyt

Python xrangerange區別

xrange 與 range xrange 用法與 range 完全相同,所不同的是生成的不是一個list物件,而是一個生成器。 要生成很大的數字序列的時候,用xrange會比range效能優很多,因為不需要一上來就開闢一塊很大的記憶體空間。

xrangerange區別

>>> range(5) [0, 1, 2, 3, 4] >>> range(1,5) [1, 2, 3, 4] >>> range(0,

python中range, xrange, arange的區別與應用示例

# -*- coding: utf-8 -*- import numpy as np print range(1,15,1) #起點1終點小於15的整數,步長等於1(步長必須為整數) pr

GETPOST區別總結

get 、post 、區別一、GET和POST區別的普遍看法:HTTP 定義了與服務器交互的不同方法,最常用的有4種,Get、Post、Put、Delete,如果我換一下順序就好記了,Put(增),Delete(刪),Post(改),Get(查),即增刪改查,下面簡單敘述一下:1)Get, 它用於獲取信息,註

JS中const、varlet區別

方法 pre 命令 con 使用 它的 comm 作用 影響 在JavaScript中有三種聲明變量的方式:var、let、const。 1.const 聲明創建一個只讀的常量。這不意味著常量指向的值不可變,而是變量標識符的值只能賦值一次,必須初始化。 const b