range 类型表示不可变的数字序列。
通常用于在 for 循环中循环指定的次数。
range是一个类类型,其类定义为:
class range(stop)
class range(start, stop[, step])
range 构造器的参数必须为整数(可以是内置的 int 或任何实现了 index 特殊方法的对象)
如果省略 step 参数,其默认值为 1。
lst = range(1, 10)
print(lst, ' , ', list(lst))
输出:
E:\Python3\Exercise\venv\Scripts\python.exe E:/Python3/Exercise/venv/06.py
range(1, 10) , [1, 2, 3, 4, 5, 6, 7, 8, 9]
Process finished with exit code 0
如果省略 start 参数,其默认值为 0。
lst = range(10)
print(lst, ' , ', list(lst))
输出:
E:\Python3\Exercise\venv\Scripts\python.exe E:/Python3/Exercise/venv/06.py
range(0, 10) , [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Process finished with exit code 0
如果 step 为正值,确定 range r 内容的公式为 r[i] = start + stepi 其中 i >= 0 且 r[i] < stop。
如果 step 为负值,确定 range 内容的公式仍然为 r[i] = start + stepi,但限制条件改为 i >= 0 且 r[i] > stop.
lst = range(0, -10, -1)
print(lst, ' , ', list(lst))
输出:
E:\Python3\Exercise\venv\Scripts\python.exe E:/Python3/Exercise/venv/06.py
range(0, -10, -1) , [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
Process finished with exit code 0
如果 r[0] 不符合值的限制条件,则该 range 对象为空。 range 对象确实支持负索引,但是会将其解读为从正索引所确定的序列的末尾开始索引。
lst = range(0)
print(lst, ' , ', list(lst))
lst2 = range(1, 0)
print(lst2, ' , ', list(lst2))
输出:
E:\Python3\Exercise\venv\Scripts\python.exe E:/Python3/Exercise/venv/06.py
range(0, 0) , []
range(1, 0) , []
Process finished with exit code 0
设置步长,按照给定的步长生成数字序列
lst = range(0, 30, 5)
print(lst, ' , ', list(lst))
输出:
E:\Python3\Exercise\venv\Scripts\python.exe E:/Python3/Exercise/venv/06.py
range(0, 30, 5) , [0, 5, 10, 15, 20, 25]
Process finished with exit code 0
range 对象实现了 一般 序列的所有操作参看列表,但拼接和重复除外(这是由于 range 对象只能表示符合严格模式的序列,而重复和拼接通常都会违反这样的模式)。
range 类型相比常规 list 或 tuple 的优势在于一个 range 对象总是占用固定数量的(较小)内存
[上一页][下一页]