天天看點

Python - 詳解 range()

range 是一個類,不是函數

表示不可變的數字序列,通常用于在 for 循環中循環指定的次數

表示區間 [0, stop) 内的整數序列

該區間從 0 開始、到 stop 結束,不包含 stop

表示區間 [start, stop) 内的整數序列

該區間從 start 開始、到 end 結束,不包含 end

step 是步進,預設是 1

如果 step 為正值,确定 range 某個值的公式為 <code>r[i] = start + step*i</code> 其中 <code>i &gt;= 0</code> 且 <code>r[i] &lt; stop</code>

如果 step 為負值,确定 range 某個值的公式仍然為 <code>r[i] = start + step*i</code>,但限制條件改為 <code>i &gt;= 0</code> 且 <code>r[i] &gt; stop</code>

都是 range 執行個體對象

相比正常的 list、tuple,range 的優勢在于range 對象總是占用固定數量的較小記憶體,無論其所表示的範圍有多大

range 對象實作了 collections.abc.Sequence ,提供了包括 index、索引、切片等特性

但是切片僅支援索引取值 [ ],不支援 [ : ] 來取值

使用 <code>==</code> 和 <code>!=</code> 檢測 range 對象是否相等是将其作為序列來比較