亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python2.x中的范圍函數和xrange函數有什么區別?

Python2.x中的范圍函數和xrange函數有什么區別?

守候你守候我 2019-06-21 13:46:58
Python2.x中的范圍函數和xrange函數有什么區別?顯然xrange更快,但我不知道它為什么更快(除了目前為止的傳聞之外,沒有證據證明它更快),或者除了這一點之外還有什么不同之處。for i in range(0, 20):for i in xrange(0, 20):
查看完整描述

3 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

Range會創建一個列表,所以如果您這樣做了range(1, 10000000)它在內存中創建一個列表9999999元素。

xrange 是個發電機,所以是序列對象。懶惰的評價。

這是真的,但是在Python 3中,.range()將由Python 2實現。.xrange()..如果需要實際生成列表,則需要:

list(range(1,100))


查看完整回答
反對 回復 2019-06-21
?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

記住,使用timeit模塊測試哪個小片段的代碼更快!

$ python -m timeit 'for i in range(1000000):' ' pass'10 loops, best of 3: 90.5 msec per loop
$ python -m timeit 'for i in xrange(1000000):' ' pass'10 loops, best of 3: 51.1 msec per loop

就我個人而言,我總是用.range(),除非我是在處理真的巨大的列表-正如你所看到的,就時間而言,對于一個百萬條目的列表,額外的開銷僅為0.04秒。正如Corey指出的,在Python3.0中.xrange()就會消失.range()會給你很好的迭代行為。


查看完整回答
反對 回復 2019-06-21
  • 3 回答
  • 0 關注
  • 606 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號