【Python之路】特别篇--Python切片
字符串切片操作
切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割。
注意: 数是可选的,而冒号是必须的。
consequence[start:end:step]
切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束,第三个数(冒号之后)表示切片间隔数。
如果不指定第一个数,Python就从序列首开始。如果没有指定第二个数,则Python会停止在序列尾。
☛ (序列首与序列尾 依据step方向决定 !)
注意: 返回的序列从开始位置开始 ,刚好在结束位置之前结束。
即开始位置是包含在序列切片中的,而结束位置被排斥在切片外。( 前闭后开 !)
- step为正,则从左到右切片,如果start > end 则为空
step为负,则从右到左切片,如果start < end 则为空
start 和 end 填空,前者表示最开始,后者表示最后一个,
同时为空的时候,表示取所有。至于方向,取决于step
>>> a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> a[:]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> a[::2]
[1, 3, 5, 7, 9] >>> a[1:6:2]
[2, 4, 6] >>> a[8:3:-1]
[9, 8, 7, 6, 5] # 右-》左切片,step 为1,a[8]=9, a[7]=8, ... a[4]=5, 8-3=5个 >>> a[10:0:-2]
[10, 8, 6, 4, 2] # 右-》左切片, 切片的时候,不存在 index 越界情况 >>> a[0:10:-2] # start < end , step 为负, 方向为右-》左,第一个是 a[0], a[0]的左边就再也没有值了。为空
[] >>> a[::-2] # a[:]表示取所有,step 为负就反方向
[10, 8, 6, 4, 2] >>> a[5::-2] # 右-》左,结果等价 a[5:0:-2] a[5]=6, a[3]=4, a[1]=2
[6, 4, 2] >>> a[:5:-2] # 右-》左, 等价于 a[9:5:-2] a[9]=10, a[7]=8
[10, 8]
总结:
1. start 和 end 不填,或者其中一个不填,都是指代获取所有,然后根据 step 确定方向。
2. step:表示取值的步长,默认为1,步长值不能为0。
3. 因此任意一个序列结构数据的索引范围为 -len(consequence) 到 len(consequence)-1 范围内的连续整数。
4. 当使用冒号(:)对序列进行切片取值时,你所输入的无论是start_index或者end_index,都不必局限于 -len(consequence) 到 len(consequence)-1 之间因为只有当你输入的索引号处于这个区间时才真正有效,而当你输入的索引号超出这个范围时,python会自动将start_index或end_index设定为缺省值(即第一个对象和最后一个对象)。
额外:
>>> a=[1,2,3,4,5,6,7]
>>> a[len(a)-1]
7
>>> a[-len(a)]
1
其中a[len(a)-1]等同于a[-1],a[-len(a)]等同于a[0],分别表示序列的最后一个和第一个对象。
【Python之路】特别篇--Python切片的更多相关文章
- Python之路(第九篇)Python文件操作
一.文件的操作 文件句柄 = open('文件路径+文件名', '模式') 例子 f = open("test.txt","r",encoding = “utf ...
- 【Python之路】特别篇--Python面向对象(进阶篇)
上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...
- 【Python之路】特别篇--Python面向对象(初级篇)
概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学 ...
- python之路基础篇
基础篇 1.Python基础之初识python 2.Python数据类型之字符串 3.Python数据类型之列表 4.Python数据类型之元祖 5.Python数据类型之字典 6.Python Se ...
- python之路第二篇(基础篇)
入门知识: 一.关于作用域: 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. if 10 == 10: name = 'allen' print name 以下结论对吗? ...
- python之路入门篇
一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器.Python这个名字,来 ...
- python之路第一篇
一.python环境的搭建 1.window下环境的搭建 (1).在 https://www.python.org/downloads/ 下载自己系统所需要的python版本 (2).安装python ...
- 【python之路1】python安装与环境变量配置
直接搜索 Python,进入官网,找到下载,根据个人电脑操作系统下载相应的软件.小编的是windows os .下载python-2.7.9.msi 安装包 双击安装程序,进入安装步骤.在安装过程中 ...
- 【Python之路】特别篇--Python内置函数
abs() 求绝对值 i = abs(-100) print(i) # 100 all() 循环里面的参数 如果每个元素都为真,那么all返回值为真 假: 0 False None "&q ...
随机推荐
- matplotlib库绘制散点图
假设通过爬虫你获取到了北京2016年3,10月份每天白天的最高气温(分别位于列表a,b),那么此时如何寻找出气温随时间(天)变化的某种规律? a = [11,17,16,11,12,11,12,6,6 ...
- springboot2.0处理任何异常返回通用数据格式
异常分为以下三种 自定义异常 可预知异常 不可预知异常 下面具体说明如何分类处理,从而保证无论触发什么异常均可返回理想的自定义数据格式 ResultCode /** * Created by mrt ...
- Linux目录结构解释
Linux的常用命令 cp: 用于文件复制的命令. cp file_1 file_2 copy_position -v: 复制的详细过程. -r: 复制目录. mv: 文件移动或文件重命名. mv f ...
- vue axios拦截跳转
第一步:添加需要拦截的页面 { path: '/control', name: 'Control', meta: { requireAuth: true }, 第二步:页面拦截 router.befo ...
- Fiddler之WebFroms的中文乱码问题
乱码问题:修改注册表 1.windows+R ,输入regedit ,按enter键 2.进入这个目录:HKEY_CURRENT_USER\Software\Microsoft\Fiddler2 3. ...
- 句子反转——牛客刷题(java)
题目描述: 给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格. 比如: (1) “hello xiao mi”-> “mi xia ...
- CSM(Certified Scrum Master) 敏捷认证是什么?
Scrum 是用于开发和持续支持复杂产品的一个框架.Scrum 基于试验性过程控制理论,借鉴了精益思想.时间盒.模块化设计等,并完整地体现了敏捷宣言和敏捷原则.Scrum 采用一种迭代.增量式的方法来 ...
- Java Web 拦截器和过滤器的区别
一.AOP:面向切面编程,Java Web中有两个常用的技术:拦截器.过滤器 二.拦截器 1.定义:在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作 2.原理:大部分时候,拦截器方法都 ...
- react的嵌套组件
react没有vue插槽的概念,但是有嵌套组件,可以用嵌套组件实现类似插槽的功能.下例中,color,name,btn相当于具名插槽,children相当于匿名插槽. import React fro ...
- Centos7:ActiveMQ安装,配置及使用
解压缩ActiveMQ 的压缩包 使用 命令在bin目录下 ./activemq stat//开启 ./activemq stop//关闭 ./activemq status//状态 进入管理后台 U ...