python中xrange和range的異同

2021-06-08 14:44:08 字數 1398 閱讀 7878

range

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

range示例:

1.>>> range(5)

2.[0, 1, 2, 3, 4]

3.>>> range(1,5)

4.[1, 2, 3, 4]

5.>>> range(0,6,2)

6.[0, 2, 4]

xrange

函式說明:用法與range完全相同,所不同的是生成的不是乙個陣列,而是乙個生成器。

xrange示例:

1.>>> xrange(5)

2.xrange(5)

3.>>> list(xrange(5))

4.[0, 1, 2, 3, 4]

5.>>> xrange(1,5)

6.xrange(1, 5)

7.>>> list(xrange(1,5))

8.[1, 2, 3, 4]

9.>>> xrange(0,6,2)

10.xrange(0, 6, 2)

11.>>> list(xrange(0,6,2))

12.[0, 2, 4]

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

1.for i in range(0, 100):

2.print i

3.for i in xrange(0, 100):

4.print i

這兩個輸出的結果都是一樣的,實際上有很多不同,range會直接生成乙個list物件:

1.a = range(0,100)

2.print type(a)

3.print a

4.print a[0], a[1]

輸出結果:

1.2.[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,.. ,99]

而xrange則不會直接生成乙個list,而是每次呼叫返回其中的乙個值:

1.a = xrange(0,100)

2.print type(a)

3.print a

4.print a[0], a[1]

輸出結果:

1.2.xrange(100)

3.0 1

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

python中range 和 xrange的區別

range 函式說明 range start,stop step 根據start與stop指定的範圍以及step設定的步長,生成乙個序列。range示例 range 5 0,1,2,3,4 range 1,5 1,2,3,4 range 0,6,2 0,2,4 xrange 函式說明 用法與rang...

python中xrange和range的異同

range 函式說明 range start,stop step 根據start與stop指定的範圍以及step設定的步長,生成乙個序列。range示例 range 5 0,1,2,3,4 range 1 5 1,2,3,4 range 0 6,2 0,2,4 xrange 函式說明 用法與rang...

python中xrange和range的異同

range 函式說明 range start,stop step 根據start與stop指定的範圍以及step設定的步長,生成乙個序列。range示例 range 5 0,1,2,3,4 range 1 5 1,2,3,4 range 0 6,2 0,2,4 xrange 函式說明 用法與rang...