深入理解Python中range和xrange的區(qū)別
腳本之家已經(jīng)給大家介紹過(guò)range和xrange的區(qū)別的基礎(chǔ)知識(shí),有興趣的朋友可以參閱:
本次小編給大家?guī)?lái)的是深入理解range和xrange之間的區(qū)別。
兩種用法介紹如下:
1.range([start], stop[, step])
返回等差數(shù)列。構(gòu)建等差數(shù)列,起點(diǎn)是start,終點(diǎn)是stop,但不包含stop,公差是step。
start和step是可選項(xiàng),沒(méi)給出start時(shí),從0開(kāi)始;沒(méi)給出step時(shí),默認(rèn)公差為1。
例如:
>>> range(10) #起點(diǎn)是0,終點(diǎn)是10,但是不包括10 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> range(1,10) #起點(diǎn)是1,終點(diǎn)是10,但是不包括10 [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> range(1,10,2) #起點(diǎn)是1,終點(diǎn)是10,步長(zhǎng)為2 [1, 3, 5, 7, 9] >>> range(0,-10,-1) #起點(diǎn)是1,終點(diǎn)是10,步長(zhǎng)為-1 [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] >>> range(0,-10,1) #起點(diǎn)是0,終點(diǎn)是-10,終點(diǎn)為負(fù)數(shù)時(shí),步長(zhǎng)只能為負(fù)數(shù),否則返回空 [] >>> range(0) #起點(diǎn)是0,返回空列表 [] >>> range(1,0) #起點(diǎn)大于終點(diǎn),返回空列表 []
2.xrange([start], stop[, step])
xrange與range類似,只是返回的是一個(gè)"xrange object"對(duì)象,而非數(shù)組list。
要生成很大的數(shù)字序列的時(shí)候,用xrange會(huì)比range性能優(yōu)很多,因?yàn)椴恍枰簧蟻?lái)就開(kāi)辟一塊很大的內(nèi)存空間。
例如:
>>> lst = xrange(1,10) >>> lst xrange(1, 10) >>> type(lst) <type 'xrange'> >>> list(lst) [1, 2, 3, 4, 5, 6, 7, 8, 9]
區(qū)別如下:
1.range和xrange都是在循環(huán)中使用,輸出結(jié)果一樣。
2.range返回的是一個(gè)list對(duì)象,而xrange返回的是一個(gè)生成器對(duì)象(xrange object)。
3.xrange則不會(huì)直接生成一個(gè)list,而是每次調(diào)用返回其中的一個(gè)值,內(nèi)存空間使用極少,因而性能非常好。
補(bǔ)充點(diǎn):
#以下三種形式的range,輸出結(jié)果相同。 >>> lst = range(10) >>> lst2 = list(range(10)) >>> lst3 = [x for x in range(10)] >>> lst [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> lst2 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> lst3 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> lst == lst2 and lst2 == lst3 True
注意:Python 3.x已經(jīng)去掉xrange,全部用range代替。
相關(guān)文章
python如何根據(jù)x軸、y軸坐標(biāo)在坐標(biāo)軸里畫出曲線圖
這篇文章主要介紹了python如何根據(jù)x軸、y軸坐標(biāo)在坐標(biāo)軸里畫出曲線圖問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
Windows自動(dòng)化Python?pyautogui?RPA操作實(shí)現(xiàn)
本文詳細(xì)介紹了使用Python的pyautogui庫(kù)進(jìn)行Windows自動(dòng)化操作的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
Python數(shù)據(jù)分析:pandas中Dataframe的groupby與索引用法
這篇文章主要介紹了pandas中Dataframe的groupby與索引用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
pandas中read_excel()函數(shù)的基本使用
在Python的數(shù)據(jù)處理庫(kù)pandas中,read_excel()函數(shù)是用于讀取Excel文件內(nèi)容的強(qiáng)大工具,本文就來(lái)介紹一下如何使用,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
Python3.8對(duì)可迭代解包的改進(jìn)及用法詳解
這篇文章主要介紹了Python3.8對(duì)可迭代解包的改進(jìn)及用法詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10
聊聊Python pandas 中l(wèi)oc函數(shù)的使用,及跟iloc的區(qū)別說(shuō)明
這篇文章主要介紹了聊聊Python pandas 中l(wèi)oc函數(shù)的使用,及跟iloc的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
如何使用 Python和 FFmpeg 批量截圖視頻到各自文件夾中
wxPython 提供了一個(gè)簡(jiǎn)單易用的界面,而 FFmpeg 則負(fù)責(zé)處理視頻幀的提取,這個(gè)工具不僅對(duì)視頻編輯工作有幫助,也為批量處理視頻文件提供了極大的便利,這篇文章主要介紹了使用 Python和 FFmpeg 批量截圖視頻到各自文件夾中,需要的朋友可以參考下2024-08-08
PID原理與python的簡(jiǎn)單實(shí)現(xiàn)和調(diào)參
這篇文章主要介紹了PID原理與python的簡(jiǎn)單實(shí)現(xiàn)和調(diào)參文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值。感興趣的小伙伴可以參考一下2022-08-08

