



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第詳解Python中range()與xrange()的區(qū)別目錄前言返回類型記憶操作使用Speed
前言
range()和xrange()是兩個函數(shù),可用于在Python的for循環(huán)中迭代一定次數(shù)。在Python3中,沒有xrange,但range函數(shù)的行為類似于Python2中的xrange。如果要編寫可在Python2和Python3上運行的代碼,則應使用range()。
range()這將返回一個范圍對象(一種可迭代的類型)。xrange()此函數(shù)返回生成器對象,該生成器對象只能通過循環(huán)來顯示數(shù)字。唯一的特定范圍是按需顯示的,因此稱為惰性評估。
兩者都以不同的方式實現(xià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()返回列表,因此可以在列表上應用的所有操作都可以在其上使用。另一方面,由于xrange()返回xrange對象,與list關聯(lián)的操作不能應用于它們,因此是不利的。
#根據(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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中專一級計算機考試題目
- 藝術市場數(shù)字化交易平臺在2025年的數(shù)據(jù)驅(qū)動與智能決策
- 熱力管道施工安全管理方案
- 2025年足部按摩師(技師)足部按摩師職業(yè)規(guī)劃實施報告評估考試試卷
- 2025年注冊電氣工程師考試電氣工程基礎與應用案例分析與應用試題
- 2025年鑄造工(技師)考試試卷:鑄造行業(yè)綠色鑄造技術
- 電廠接網(wǎng)工程施工管理方案
- 充電樁運營管理與維護方案
- 初中數(shù)學八年級下冊第30單元2025年單元綜合測試卷
- 2025年注冊城鄉(xiāng)規(guī)劃師考試城市規(guī)劃法規(guī)與政策案例分析試卷
- 參觀人員管理辦法
- 2025夏季中國南水北調(diào)集團水網(wǎng)智慧科技有限公司招聘18人筆試歷年參考題庫附帶答案詳解
- 2025至2030蛋白質(zhì)測序儀行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025年高考湖北卷物理真題(原卷版)
- 恙蟲病疑難病例討論記錄
- 患者知情同意培訓
- 農(nóng)戶與企業(yè)聯(lián)營養(yǎng)殖合作協(xié)議書
- 顱內(nèi)惡性腫瘤護理措施
- 2025至2030中國養(yǎng)生館行業(yè)市場發(fā)展分析及前景趨勢報告
- 宮頸機能不全的護理查房
- 賦能培訓管理
評論
0/150
提交評論