Python - 详解 range()
介绍
- range 是一个类,不是函数
- 表示不可变的数字序列,通常用于在 for 循环中循环指定的次数
两种语法格式
range(stop)
- 表示区间 [0, stop) 内的整数序列
- 该区间从 0 开始、到 stop 结束,不包含 stop
range(start, stop[, step])
- 表示区间 [start, stop) 内的整数序列
- 该区间从 start 开始、到 end 结束,不包含 end
- step 是步进,默认是 1
step 的取值规则
- 如果 step 为正值,确定 range 某个值的公式为
r[i] = start + step*i
其中i >= 0
且r[i] < stop
- 如果 step 为负值,确定 range 某个值的公式仍然为
r[i] = start + step*i
,但限制条件改为i >= 0
且r[i] > stop
返回值
都是 range 实例对象
一些简单的栗子
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25] >>> tuple(range(0, 10, 3))
(0, 3, 6, 9)>>> set(range(0, -10, -1))
{0, -1, -2, -3, -4, -5, -6, -7, -8, -9} >>> list(range(0))
[] >>> list(range(1, 0))
[]
range 的优势
相比常规的 list、tuple,range 的优势在于range 对象总是占用固定数量的较小内存,无论其所表示的范围有多大
range 的特性
range 对象实现了 collections.abc.Sequence ,提供了包括 index、索引、切片等特性
r = range(0, 20, 2)
print(r)
print(list(r)) # in
print(10 in r)
print(11 not in r) # index
print(r.index(6)) # 切片
print(r[2])
print(r[-1]) # 输出结果
range(0, 20, 2)
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
True
True
3
4
18
但是切片仅支持索引取值 [ ],不支持 [ : ] 来取值
==、!= 操作
使用 ==
和 !=
检测 range 对象是否相等是将其作为序列来比较
r1 = range(0, 4, 2)
r2 = range(0, 3, 2)
print(r1 == r2) # 输出结果
True
循环遍历 range
for item in range(3):
print(item) # 输出结果
0
1
2
Python - 详解 range()的更多相关文章
- 33 Python 详解命令解析 - argparse--更加详细--转载
https://blog.csdn.net/lis_12/article/details/54618868 Python 详解命令行解析 - argparse Python 详解命令行解析 - arg ...
- [转载]python 详解re模块
原文地址:python 详解re模块作者:Rocky 正则表达式的元字符有. ^ $ * ? { [ ] | ( ) .表示任意字符 []用来匹配一个指定的字符类别,所谓的字符类别就是你想匹配的一个字 ...
- Python 详解修饰器 附带 js使用修饰器
修饰器 功能 修饰器的主要功能是,在不改变已有代码的情况下,为某一个类,方法等扩展功能 首先看这样一段代码 def foo(): for i in range(10): print(i) foo() ...
- python 详解re模块
正则表达式的元字符有. ^ $ * ? { [ ] | ( ).表示任意字符[]用来匹配一个指定的字符类别,所谓的字符类别就是你想匹配的一个字符集,对于字符集中的字符可以理解成或的关系.^ 如果放在字 ...
- 【经典案例】Python详解设计模式:策略模式
完成一项任务往往有多种方式,我们将其称之为策略. 比如,超市做活动,如果你的购物积分满1000,就可以按兑换现金抵用券10元,如果购买同一商品满10件,就可以打9折,如果如果购买的金额超过500,就可 ...
- python 详解正则表达式的使用(re模块)
一,什么是正则表达式 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件 ...
- python详解json模块
我们在做工作中经常会使用到json模块,今天就简单介绍下json模块 什么是json JSON ,全称为JavaScript Object Notation, 也就是JavaScript 对象标记,它 ...
- Python——详解collections工具库
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天为大家介绍Python当中一个很好用也是很基础的工具库,叫做collections. collection在英文当中有容器的意思,所以顾 ...
- Python——详解__str__, __repr__和__format__
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题的第10篇文章,我们来聊聊Python当中的类. 打印实例 我们先从类和对象当中最简单的打印输出开始讲起,打印一个实例 ...
随机推荐
- Spring Boot WebFlux-09——WebFlux 集成测试及部署
第09课:WebFlux 集成测试及部署 前言 在日常工作中,免不了自测 UT,因为覆盖率不达标,是不允许提交测试,那怎么进行 WebFlux 项目的测试呢.@WebFluxTest 是 WebFlu ...
- 为什么 Python 没有函数重载?如何用装饰器实现函数重载?
英文:https://arpitbhayani.me/blogs/function-overloading 作者:arprit 译者:豌豆花下猫("Python猫"公众号作者) 声 ...
- Unity的AnimationCurve
转自:风宇冲Unity3D教程学院http://blog.sina.com.cn/s/blog_471132920101f8nv.html,本文有多处增删减改,详细内容请查看原文. 1.介绍 Anim ...
- 97、配置yum源仓库服务器
(服务端(双(外,内)网卡)--客户端(内网)) YUM主要用于自动安装.升级rpm软件包,它能自动查找并解决rpm包之间的依赖关系.要成功的使用YUM工具安装更新软件或系统, 就需要有一个包含各种r ...
- 『动善时』JMeter基础 — 53、JMeter集合点功能的使用
目录 1.集合点介绍 2.同步定时器界面介绍 3.集合点的使用 (1)测试计划内包含的元件 (2)线程组元件内容 (3)HTTP请求组件内容 (4)同步定时器内容 (5)运行脚本查看结果 4.集合点设 ...
- POJ 1016 Numbers That Count 不难,但要注意细节
题意是将一串数字转换成另一种形式.比如5553141转换成2个1,1个3,1个4,3个5,即21131435.1000000000000转换成12011.数字的个数是可能超过9个的.n个m,m是从小到 ...
- Linux下静默安装weblogic12c
一.实验环境 操作系统:CentOS Linux release 8.3.2011 JDK:1.7.0_151 二.创建应用用户(不建议使用root权限进行服务操作) 1.创建weblogic用户 g ...
- 一小时搞懂Mysql锁机制
内容概述: 我们知道,数据也是一种供许多用户共享访问的资源.如何保证数据并发访问的一致性.有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素.从这一角度来说,锁对 ...
- 1.3.2、通过Cookie匹配
server: port: 8080 spring: application: name: gateway cloud: gateway: routes: - id: guo-system4 uri: ...
- 使用robot合并Robot Framework测试报告
p.p1 { margin: 0; font: 17px ".PingFang SC" } p.p2 { margin: 0; font: 12px "Helvetica ...