Python序列类型之Range

Python序列类型之Range

概述

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 + step
i,但限制条件改为 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 对象总是占用固定数量的(较小)内存

[上一页][下一页]

猜你喜欢

转载自blog.csdn.net/wzc18743083828/article/details/109758259