Python3的切片
来源:互联网 发布:淘宝卖家小号 编辑:程序博客网 时间:2024/06/05 02:14
Python3的切片非常灵活,可以很方便地对有序序列进行切片操作,代码简单易用。
大家都知道,我们可以直接使用索引来访问序列中的元素,同时索引可分为正向和负向两种,而切片也会用到索引,下面放上一个图,有助于大家理解正、负向索引的区别。
切片
切片的语法表达式为:[start_index : end_index : step]
,其中:
start_index
表示起始索引end_index
表示结束索引step
表示步长,步长不能为0,且默认值为1
切片操作是指按照步长,截取从起始索引到结束索引,但不包含结束索引(也就是结束索引减1)的所有元素。
python3
支持切片操作的数据类型有list
、tuple
、string
、unicode
、range
- 切片返回的结果类型与原对象类型一致
- 切片不会改变原对象,而是重新生成了一个新的对象
下面看例子,先看一个完整的例子:
>>> C = ['A','B','C','D','E','F']>>> C[0:4:1]['A', 'B', 'C', 'D']
定义一个数组,包含'A','B','C','D','E','F'
这6个元素,通过切片,按照步长为1,获取从索引0开始,到索引4结束但不包含索引4的所有元素,见下方示意图
省略step
步长,因为步长有默认值为1,因此结果还是一样:
>>> C[0:4]['A', 'B', 'C', 'D']
省略start_index
,保留end_index
,这样会从第一个元素开始,切到end_index - 1
的元素为止:
>>> C[:5]['A', 'B', 'C', 'D', 'E']
保留start_index
,但省略end_index
,这样会从起始索引开始,切到最后一个元素为止:
>>> C[2:]['C', 'D', 'E', 'F']
省略start_index
、end_index
和step
,这样就表示就表示切片整个序列,也就是复制出了一个新的序列:
>>> C[:]['A', 'B', 'C', 'D', 'E', 'F']
省略start_index
、end_index
,但保留step
,表示对整个序列,按照步长整除的规则取值:
>>> C[::2]['A', 'C', 'E']
此时,如果我们将步长设为-1
,那么就可以很方便的得到一个反序的序列了:
>>> C[::-1]['F', 'E', 'D', 'C', 'B', 'A']
下面这四种表达式是等价的:
>>> C[0:3]['A', 'B', 'C']>>> C[0:-3]['A', 'B', 'C']>>> C[-6:3]['A', 'B', 'C']>>> C[-6:-3]['A', 'B', 'C']
切片时,一定要保证start_index
到end_index
的方向与步长step
的方向同向,否则会切出空的序列:
>>> C[0:3:-1][]>>> C[3:0:1][]
0 0
- Python3的切片
- python3 矩阵的切片
- Python3学习(6)--切片【Slice】
- python3 对迭代器进行切片
- Python3之 切片之逆向截取
- jedis 切片(分布式) 非切片的实例
- python强大的切片
- ps切片的使用
- python的切片[]
- ps的切片
- python切片的问题
- python切片的使用
- 切片的更多操作方法
- pyhton的切片操作
- Python的序列切片
- Python的切片操作
- Python的切片原理
- pytorch的切片
- 第八届蓝桥杯日期问题
- Windows Server 2008 配置ODBC
- Unity 查看所有GUI默认样式
- Webstorm设置Node.js智能提示
- 新浪微博2017前端笔试题
- Python3的切片
- C++多继承与虚基类
- 二叉树的最大深度
- redis集群时,出现的几个异常问题
- android studio 编译高级篇-gradle多版本编译,定制任务
- Hadoop 单节点搭建【可行】
- Python次位面——为pip切换国内源
- 作为变革家的C端用户和客户,谈谈我对他的6点认识
- 最小路径覆盖和最小边覆盖及相关性质