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 对象总是占用固定数量的(较小)内存

[上一页][下一页]

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值