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

首頁 > 編程 > Python > 正文

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

2020-02-16 10:52:25
字體:
來源:轉載
供稿:網友

武林站長站已經給大家介紹過range和xrange的區別的基礎知識,有興趣的朋友可以參閱:

 python中xrange和range的區別

python中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代替。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 方山县| 安平县| SHOW| 封开县| 甘肃省| 杭州市| 大田县| 永胜县| 怀宁县| 达日县| 青州市| 左贡县| 城固县| 赫章县| 从化市| 泌阳县| 利辛县| 东辽县| 新晃| 卢氏县| 古田县| 荣成市| 沙田区| 都昌县| 长宁区| 宣城市| 五常市| 永定县| 桂东县| 米易县| 高陵县| 涪陵区| 曲阳县| 乐亭县| 齐齐哈尔市| 华亭县| 通榆县| 海淀区| 塘沽区| 正定县| 渝北区|