1. 程式人生 > >python中range函式和xrange函式的區別

python中range函式和xrange函式的區別

Range:

range([start,] stop[, step]),根據start與stop指定的範圍以及step設定的步長,生成一個序列。

Xrange:

用法與range完全相同,所不同的是生成的不是一個序列,而是一個生成器。

程式碼示例:

a1 = range(0, 10)
a2 = xrange(0, 10)

print a1
print type(a1)
print a1[0],a1[1]


print a2
print type(a2)
print a2[0],a2[1]

輸出:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
<type 'list'>
0 1
xrange(10)
<type 'xrange'>
0 1

效能測試:
s1 = Timer('i = range(0, 100)','').timeit()
s2 = Timer('i = xrange(0, 100)','').timeit()
print s1
print s2

輸出:
4.78758011572
1.31038162076

xrange做迴圈的效能比range好,尤其是返回值較大的時候。