python - range() 和 xrange() 该选择哪个呢?
ringa_lee
ringa_lee 2017-04-17 13:36:06
0
8
785

这两个该如何选择,性能上、优缺点各自如何呢?

ringa_lee
ringa_lee

ringa_lee

全部回覆(8)
巴扎黑

在閱讀的Q.yuhen的《Python 學習筆記》時無意中看到這到一段,我想能加答上這個問題,我直接切圖轉過來了:

PHPzhong

樓上都是說xrange優點,我補充下缺點
1. python3沒有xrange,如果python2遷移到3、或要同時在2/3跑程序,就要注意。
2. xrange不支援切片,這個用起來可能不是很爽。

個人覺得,如果資料量不大,還是用range,如果資料大且是版本2才考慮用xrange。
ps:兩個都去了解,然後選擇最適合自己需求的~~這個真的沒有絕對~~

黄舟

range(start, end, step) 會產生一個列表 [start, start+step, start+2*step, ..., end]
如果start與end的相差很大,那麼產生列表的時間會很長,而且資料量很大,佔記憶體,生成之後,再迭代。

xrange(start, end, step) 則不會產生一個列表,迭代一次產生一個數,不會有記憶體方面影響。

左手右手慢动作

Python 3 只有 range,跟 Python 2 的 xrange 一個效果 ~~

洪涛

普通程式選range,感覺可能會比較耗時的操作就使用xrange

阿神

可以Google range()和xrange()的實作區別.

如果range的數不大,使用range(); 反之xrange(). 至於數多大算大,我跟感覺走

Python3.x中已經只有range()了,但是對於Python的版本問題以及維護問題,你懂的.

大家讲道理

補充 Python2的xrange不支援 slicing Python3 的 range 支援

大家讲道理

xrange最後回傳的是一個生成器
range是一個列表(python2.7)
我個人是喜歡xrange一點

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板