国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

深入理解Python中range和xrange的區別

2020-01-04 16:15:06
字體:
來源:轉載
供稿:網友

VEVB武林網已經給大家介紹過range和xrange的區別的基礎知識,本次小編給大家帶來的是深入理解range和xrange之間的區別。

兩種用法介紹如下:

1.range([start], stop[, step])

返回等差數列。構建等差數列,起點是start,終點是stop,但不包含stop,公差是step。

start和step是可選項,沒給出start時,從0開始;沒給出step時,默認公差為1。

例如:

>>> range(10)               #起點是0,終點是10,但是不包括10[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> range(1,10)              #起點是1,終點是10,但是不包括10[1, 2, 3, 4, 5, 6, 7, 8, 9]>>> range(1,10,2)             #起點是1,終點是10,步長為2[1, 3, 5, 7, 9]>>> range(0,-10,-1)            #起點是1,終點是10,步長為-1 [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]>>> range(0,-10,1)            #起點是0,終點是-10,終點為負數時,步長只能為負數,否則返回空[]>>> range(0)               #起點是0,返回空列表[]>>> range(1,0)              #起點大于終點,返回空列表[]

2.xrange([start], stop[, step])
xrange與range類似,只是返回的是一個"xrange object"對象,而非數組list。
要生成很大的數字序列的時候,用xrange會比range性能優很多,因為不需要一上來就開辟一塊很大的內存空間。
例如:

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

區別如下:

1.range和xrange都是在循環中使用,輸出結果一樣。

2.range返回的是一個list對象,而xrange返回的是一個生成器對象(xrange object)。

3.xrange則不會直接生成一個list,而是每次調用返回其中的一個值,內存空間使用極少,因而性能非常好。

補充點:

#以下三種形式的range,輸出結果相同。>>> lst = range(10)>>> lst2 = list(range(10))>>> lst3 = [x for x in range(10)]>>> lst[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> lst2[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> lst3[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> lst == lst2 and lst2 == lst3True

注意:Python 3.x已經去掉xrange,全部用range代替。

 

注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乐山市| 新宁县| 涿鹿县| 沈丘县| 景德镇市| 兴宁市| 东阳市| 施甸县| 黔西县| 珠海市| 东兴市| 永嘉县| 北宁市| 华容县| 商南县| 萝北县| 舞钢市| 镇巴县| 福贡县| 罗山县| 龙川县| 浦县| 枣阳市| 桦川县| 逊克县| 恩施市| 饶平县| 连南| 通榆县| 厦门市| 两当县| 凉山| 临朐县| 简阳市| 甘谷县| 永顺县| 甘洛县| 顺昌县| 湖州市| 从江县| 陆川县|