Python高级特性切片(Slice)操作详解


Posted in Python onSeptember 27, 2018

切片操作首先支持下标索引,通过[ N:M :P ]操作
索引正向从0开始,逆向从-1开始
N:切片开始位置
M:切片结束位置(不包含)
P:指定切片步长,为正数表示按照指定步长正向切片,为负数反之

一、列表的切片操作

列表切片后还是列表
通过列表生成器定义一个列表:

In [2]: a = [n for n in range(10)]
In [3]: a
Out[3]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

通过切片浅拷贝对象:

In [4]: a[:]
Out[4]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [5]: a[::]
Out[5]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

指定开始切片位置:

In [6]: a[1:]
Out[6]: [1, 2, 3, 4, 5, 6, 7, 8, 9]
In [7]: a[1::]
Out[7]: [1, 2, 3, 4, 5, 6, 7, 8, 9]

指定切片范围(不包含结束):

In [8]: a[1:5]
Out[8]: [1, 2, 3, 4]
In [9]: a[2:6:]
Out[9]: [2, 3, 4, 5]

指定步长切片:

In [10]: a[0:9:3]
Out[10]: [0, 3, 6]
In [11]: a[0:9:2]
Out[11]: [0, 2, 4, 6, 8]

指定步长方向:

In [12]: a[9:0:-2]
Out[12]: [9, 7, 5, 3, 1]
In [13]: a[9:0:-3]
Out[13]: [9, 6, 3]

通过切片逆置列表:

In [15]: a[::-1]
Out[15]: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

二、元组切片

元组切片后还是元组,用法和列表切片一样,但是一点需要注意

In [17]: b = (n for n in range(5))
In [18]: b
Out[18]: <generator object <genexpr> at 0x00000206445ED780>
# 推到式通过小括号()以后就不是元组了,是生成器的另一种形式
In [19]: b = tuple(n for n in range(5))
In [20]: b
Out[20]: (0, 1, 2, 3, 4)
In [21]: b[::-1]
Out[21]: (4, 3, 2, 1, 0)
In [22]: b[0:2:]
Out[22]: (0, 1)

三、字符串切片

字符串切片之后还是字符串,用法也和列表切片一致

In [23]: c = "hello,world"
In [24]: c[::-1]
Out[24]: 'dlrow,olleh'
In [25]: c[0:5:]
Out[25]: 'hello'

Python 相关文章推荐
Python open读写文件实现脚本
Sep 06 Python
数据挖掘之Apriori算法详解和Python实现代码分享
Nov 07 Python
python文件写入实例分析
Apr 08 Python
Python中函数的多种格式和使用实例及小技巧
Apr 13 Python
Python中的anydbm模版和shelve模版使用指南
Jul 09 Python
通过Python实现自动填写调查问卷
Sep 06 Python
Django实现快速分页的方法实例
Oct 22 Python
用Python shell简化开发
Aug 08 Python
python快速排序的实现及运行时间比较
Nov 22 Python
如何基于python实现年会抽奖工具
Oct 20 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
Feb 06 Python
Python 如何利用ffmpeg 处理视频素材
Nov 27 Python
Python初学者需要注意的事项小结(python2与python3)
Sep 26 #Python
使用 Python 实现微信群友统计器的思路详解
Sep 26 #Python
APIStar:一个专为Python3设计的API框架
Sep 26 #Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 #Python
Python 实现「食行生鲜」签到领积分功能
Sep 26 #Python
Linux下python3.6.1环境配置教程
Sep 26 #Python
简单谈谈python基本数据类型
Sep 26 #Python
You might like
php简单浏览目录内容的实现代码
2013/06/07 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
2014/11/22 PHP
JavaScript 的方法重载效果
2009/08/07 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
jquery中get,post和ajax方法的使用小结
2014/02/04 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
Vue.js -- 过滤器使用总结
2017/02/18 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
JS实现简单拖拽效果
2017/06/21 Javascript
浅谈Angular路由复用策略
2017/10/04 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
python通过pil模块获得图片exif信息的方法
2015/03/16 Python
python中is与双等于号“==”的区别示例详解
2017/11/21 Python
python利用rsa库做公钥解密的方法教程
2017/12/10 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
在Python中给Nan值更改为0的方法
2018/10/30 Python
kafka-python批量发送数据的实例
2018/12/27 Python
关于html字符串正则判断和匹配的具体使用
2019/12/12 HTML / CSS
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
过滤器的用法
2013/10/08 面试题
什么是抽象
2015/12/13 面试题
人事专员岗位职责范本
2014/03/04 职场文书
考试作弊检讨书1000字(5篇)
2014/10/19 职场文书
2014年协会工作总结
2014/11/22 职场文书
网络管理员岗位职责
2015/02/12 职场文书
廉洁自律证明
2015/06/24 职场文书
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL