



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第詳解Python中range()與xrange()的區(qū)別目錄前言返回類型記憶操作使用Speed
前言
range()和xrange()是兩個函數(shù),可用于在Python的for循環(huán)中迭代一定次數(shù)。在Python3中,沒有xrange,但range函數(shù)的行為類似于Python2中的xrange。如果要編寫可在Python2和Python3上運行的代碼,則應(yīng)使用range()。
range()這將返回一個范圍對象(一種可迭代的類型)。xrange()此函數(shù)返回生成器對象,該生成器對象只能通過循環(huán)來顯示數(shù)字。唯一的特定范圍是按需顯示的,因此稱為惰性評估。
兩者都以不同的方式實現(xiàn),并具有與之相關(guān)的不同特征。比較點如下:
返回類型記憶操作使用速度
返回類型
range()返回-范圍對象。
xrange()返回xrange()對象。
#基于返回類型演示range()與xrange()的Python代碼
#用range()初始化a
a=range(1,10000)
#用xrange()初始化a
x=xrange(1,10000)
#測試a的類型
print("Thereturntypeofrange()is:")
print(type(a))
#測試x的類型
print("Thereturntypeofxrange()is:")
print(type(x))
輸出:
Thereturntypeofrange()is:
typelist
Thereturntypeofxrange()is:
typexrange
記憶
與使用xrange()存儲范圍的變量相比,存儲由range()創(chuàng)建的范圍的變量占用更多內(nèi)存。其基本原因是range()的返回類型是list而xrange()是xrange()對象。
#基于內(nèi)存演示range()與xrange()的Python代碼
importsys
#用range()初始化a
a=range(1,10000)
#用xrange()初始化a
x=xrange(1,10000)
#測試range()的大小需要更多內(nèi)存
print("Thesizeallottedusingrange()is:")
print(sys.getsizeof(a))
#測試xxrange()的大小占用更少的內(nèi)存
print("Thesizeallottedusingxrange()is:")
print(sys.getsizeof(x))
輸出:
Thesizeallottedusingrange()is:
80064
Thesizeallottedusingxrange()is:
40
操作使用
由于range()返回列表,因此可以在列表上應(yīng)用的所有操作都可以在其上使用。另一方面,由于xrange()返回xrange對象,與list關(guān)聯(lián)的操作不能應(yīng)用于它們,因此是不利的。
#根據(jù)操作使用情況演示range()與xrange()的Python代碼
#用range()初始化a
a=range(1,6)
#用xrange()初始化a
x=xrange(1,6)
#在range()打印上測試slice操作的使用沒有錯誤
print("Thelistafterslicingusingrangeis:")
print(a[2:5])
#在xrange()上測試切片操作的使用會引發(fā)錯誤
print("Thelistafterslicingusingxrangeis:")
print(x[2:5])
錯誤:
Traceback(mostrecentcalllast):
File1f2d94c59aea6aed795b05a19e44474d.py,line18,in
print(x[2:5])
TypeError:sequenceindexmustbeinteger,notslice
輸出:
Thelistafterslicingusingrangeis:
[3,4,5]
Thelistafterslicingusingxrangeis:
Speed
由于xrange()僅評估僅包含惰性評估所需值的生成器對象,因此在實現(xiàn)上比range()更快。
要點:
如果您想編寫可在Python2和Python3上運行的代碼,請使用range(),因為xrange函數(shù)在Python3中已棄用。如果多次迭代相同的序列,range()會更快。xrange()每次都必須重建整數(shù)對象,但range()將具有真正的整數(shù)對象。(然而,它在內(nèi)存方面的表現(xiàn)總是更差)
range()xrange()返回整數(shù)列表。返回一個生成器對象。執(zhí)行速度較慢執(zhí)行速度更快。占用更多內(nèi)存,因為它將整個元素列表保留在內(nèi)存中。占
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 視頻營銷如何利用客戶行為數(shù)據(jù)優(yōu)化內(nèi)容創(chuàng)作
- 2025年中石化:石油腦合作協(xié)議書
- 行業(yè)領(lǐng)先企業(yè)的市場進入策略案例分析
- 自動化設(shè)備維護計劃企業(yè)持續(xù)發(fā)展的基石
- 高效庫存管理系統(tǒng)推動企業(yè)發(fā)展
- 跨越虛擬與現(xiàn)實的橋梁VR品牌推廣的未來趨勢
- 藝術(shù)教育對孩子未來的影響
- 跨時代家校合作的教育價值與實踐
- 跨領(lǐng)域的數(shù)據(jù)隱私保護實踐
- 行業(yè)可持續(xù)發(fā)展視角下的市場趨勢預(yù)測研究
- 2025-2030功能性飲料項目商業(yè)計劃書
- 致敬英雄張富清
- 2025江蘇無錫宜興市國資本投資控股集團限公司招聘工作人員10人易考易錯模擬試題(共500題)試卷后附參考答案
- (二模)濟寧市2025年4月高三高考模擬考試政治試卷(含答案)
- 銀行市場營銷戰(zhàn)略試題及答案2025年總結(jié)
- 韋氏測試題及答案
- 2025怎樣正確理解全過程人民民主的歷史邏輯、實踐邏輯與理論邏輯?(答案3份)
- 國家開放大學(xué)《工具書與文獻檢索》形考任務(wù)1-4參考答案及作業(yè)1
- 2025中原工學(xué)院教師招聘考試試題及答案
- 《輝煌成就》課件- 2024-2025學(xué)年人教版(2024)初中美術(shù)七年級下冊
- 2024人工智能與職場研究報告-中國人民大學(xué)x明略科技x秒針營銷科學(xué)院-202404
評論
0/150
提交評論