1. 程式人生 > >Python xrange與range的區別

Python xrange與range的區別

xrange 與 range

xrange 用法與 range 完全相同,所不同的是生成的不是一個list物件,而是一個生成器。

這裡寫圖片描述

要生成很大的數字序列的時候,用xrange會比range效能優很多,因為不需要一上來就開闢一塊很大的記憶體空間。
xrange 和 range 這兩個基本上都是在迴圈的時候用。

for i in range(0, 100):
    print i

for i in xrange(0, 100):
    print i 

range會直接生成一個list物件,而xrange則不會直接生成一個list,而是每次呼叫返回其中的一個值.

所以xrange做迴圈的效能比range好,尤其是返回很大的時候。儘量用xrange吧,除非你是要返回一個列表。

python3中的 range

range()是python的內建函式,用於建立整數的列表,可以生成遞增或者遞減的數列。range也是python的內建函式,用於創造xrange物件用於迭代。
在python3中,range()這種實現被移除了,保留了xrange()的實現,且將xrange()重新命名成range()。
在python3中,range object在python裡增加了attributes,’count’,’index’,’start’,’step’,’stop’,且能支援slicing。python3的range()在xrange()的基礎上變的更強大了

參考文獻