天天看点

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 对象是否相等是将其作为序列来比较