您的“關注”和“點贊”,是信任,是認可,是支持,是動力......
如意見相佐,可留言,
本人必將竭盡全力試圖做到準確和全面,終其一生進行修改補充更新,

- 1 range 型別概述
- 2 range() 函式
- 3 range 元素檢測、元素索引查找、切片、負索引介紹
- 4 使用 == 和 != 檢測 range 物件是否相等
- 5 版本區別和版本新功能(部分)
- 【文章其它地址】
- 微信公眾號:碼農阿杰
- CSDN 博客
- 【參考資料】
- Python 官網
- Python 3.8.2 documentation
1 range 型別概述
range 型別表示不可變的數字序列,通常用于在 for 回圈中回圈指定的次數,
range 型別相比常規 list 或 tuple 的優勢在于一個 range 物件總是占用固定數量的(較小)記憶體,不論其所表示的范圍有多大(因為它只保存了 start, stop 和 step 值,并會根據需要計算具體單項或子范圍的值),
2 range() 函式
使用格式如下所示:
class range(stop)
class range(start, stop[, step])
對以上格式說明,
-
range 構造器的引數必須為整數(可以是內置的 int 或任何實作了 index 特殊方法的物件), -
如果省略
step引數,其默認值為 1, 如果省略start引數,其默認值為 0,如果step為零則會引發ValueError, -
如果
step為正值,確定 ranger內容的公式為r[i] = start + step*i其中i >= 0且r[i] < stop,如果step為負值,確定range內容的公式仍然為r[i] = start + step*i,但限制條件改為i >= 0 且 r[i] > stop,如果r[0]不符合值的限制條件,則該range物件為空,range物件確實支持負索引,但是會將其解讀為從正索引所確定的序列的末尾開始索引, -
元素絕對值大于
sys.maxsize的 range 物件是被允許的,但某些特性 (例如len()) 可能引發OverflowError, -
stop 引數:不包括stop本身,
舉例如下所示:
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25]
>>> list(range(0, 10, 3))
[0, 3, 6, 9]
>>> list(range(0, -10, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> list(range(0))
[]
>>> list(range(1, 0))
[]
3 range 元素檢測、元素索引查找、切片、負索引介紹
range 物件實作了 collections.abc.Sequence ABC,提供如包含檢測、元素索引查找、切片等特性,并支持負索引 ,舉例如下所示:
>>> r = range(0, 20, 2)
>>> r
range(0, 20, 2)
>>> 11 in r
False
>>> 10 in r
True
>>> r.index(10)
5
>>> r[5]
10
>>> r[:5]
range(0, 10, 2)
>>> r[-1]
18
4 使用 == 和 != 檢測 range 物件是否相等
使用 == 和 != 檢測 range 物件是否相等是將其作為序列來比較,
也就是說,如果兩個 range 物件表示相同的值序列就認為它們是相等的,
請注意:比較結果相等的兩個 range 物件可能會具有不同的 start, stop 和 step 屬性,舉例如下所示:
range(0) == range(2, 1, 3)
range(0, 3, 2) == range(0, 4, 2)
5 版本區別和版本新功能(部分)
-
3.2 版更改: 實作
Sequence ABC, 支持切片和負數索引, 使用int物件在固定時間內進行成員檢測,而不是逐一迭代所有項, -
3.3 版更改: 定義
==和!=以根據 range 物件所定義的值序列來進行比較(而不是根據物件的標識), -
3.3 新版功能:
start,stop和step屬性,
【文章其它地址】
微信公眾號:碼農阿杰
CSDN 博客
【參考資料】
Python 官網
Python 3.8.2 documentation
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/148783.html
標籤:Python
上一篇:Python 元組資料型別(tuple)詳解 [訪問元組元素][修改元組元素][洗掉元組][學習 Python 必備基礎知識][看此一篇就夠了]
