1. 程式人生 > 程式設計 >Python3如何使用range函式替代xrange函式

Python3如何使用range函式替代xrange函式

在 Python 2 中 xrange() 建立迭代物件的用法是非常流行的。比如: for 迴圈或者是列表/集合/字典推導式。這個表現十分像生成器(比如。"惰性求值")。但是這個 xrange-iterable 是無窮的,意味著你可以無限遍歷。由於它的惰性求值,如果你不得僅僅不遍歷它一次,xrange() 函式 比 range() 更快(比如 for 迴圈)。儘管如此,對比迭代一次,不建議你重複迭代多次,因為生成器每次都從頭開始。

在 Python 3 中,range() 是像 xrange() 那樣實現以至於一個專門的 xrange() 函式都不再存在(在 Python 3 中 xrange() 會丟擲命名異常)。

解決方法

上面講的原因比較官方,可能很多人不是理解,通俗點講就是:

因為 python3 中取消了 range 函式,而把 xrange 函式重新命名為 range,所以現在直接用 range 函式即可。

因此,在python3版本中,我們只需要直接用range 函式就可以了!而且從某種意義上來說,xrange() 函式用法與 range() 完全相同。如下:

range

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

>>> range(10)
[0,1,2,3,4,5,6,7,8,9]

>>> range(2,10)
[2,10,2)
[2,8]
>>> type(_)
<type 'list'>

xrange

函式說明:和range 的用法完全相同,但是返回的是一個生成器。

>>> xrange(10)
xrange(10)
>>> xrange(2,10)
xrange(2,10)
>>> xrange(2,2)
xrange(2,2)
>>> type(_)
<type 'xrange'>
>>> list(xrange(2,2))

[2,8]

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。