本文目錄一覽:
python中xrange用法分析
python中xrange用法分析
本文實例講述了python中xrange用法。分享給大家供大家參考。具體如下:
先來看如下示例:
x=xrange(0,8)
print x
xrange(8)
print x[0]
print x[7]
7
print x[8]
Traceback (most recent call last):
File “stdin”, line 1, in module
IndexError: xrange object index out of range
x=range(0,8)
print x
[0, 1, 2, 3, 4, 5, 6, 7]
print x[0]
print x[8]
Traceback (most recent call last):
File “stdin”, line 1, in module
IndexError: list index out of range
range([start,] stop [,step])-list of integers
range()返回一個遞增或遞減的數字列表,列表的元素值由三個參數決定
start表示列表開始的值,默認為“0”。
stop 表示列表結束的值,該參數不可缺少
參數step表示步長,默認值為“1”。
range()返回的是一個遞增或遞減的數字列表。
xrange 是一個類,返回的是一個xrange對象。使用xrange()進行遍歷,每次遍歷只返回一個值。range()返回的是一個列表,一次性計算並返回所有的值。因此,xrange()的執行效率要高於range()
希望本文所述對大家的Python程序設計有所幫助。
Python中Range和XRange的區別
在python中
range
函數說明:range([start,] stop[, step]),根據start與stop指定的範圍以及step設定的步長,生成一個列表。
例子:
xrange
函數說明:xrange 用法與 range 完全相同,所不同的是生成的不是一個list對象,而是一個生成器。
例子:
但是要生成很大的數字序列的時候,用xrange會比range性能優很多,因為不需要一上來就開闢一塊很大的內存空間,這兩個基本上都是在循環的時候用。
再循環中盡量使用 xrange 這樣性能可以得到提高,除非要返回一個列表
由上面的示例可以知道:要生成很大的數字序列的時候,用xrange會比range性能優很多,因為不需要一上來就開闢一塊很大的內存空間。
xrange 和 range 這兩個基本上都是在循環的時候用。
這兩個輸出的結果都是一樣的,實際上有很多不同,range會直接生成一個list對象:
輸出結果:
而xrange則不會直接生成一個list,而是每次調用返回其中的一個值:
輸出結果:
總結:
所以xrange做循環的性能比range好,尤其是返回很大的時候。盡量用xrange吧,除非你是要返回一個列表。
python中xrange和range的異同 CiNiao’s blog
Python2 中range()生成的是一個list而xrange()則生成一個generator,兩者區別比較大,比如說:
for i in range(9999999999999999999999999999999999999999999999999999):
print i
內存就直接爆掉,而使用xrange則不會出問題,因為xrange是每次循環,i通過表達式推出,並不會把整張列表直接生成.
註:Python3中去掉xrange()功能由range()代替.
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/244287.html