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之关于循环的小伎俩
Oct 02 Python
Python实现列表删除重复元素的三种常用方法分析
Nov 24 Python
Python-Seaborn热图绘制的实现方法
Jul 15 Python
Pycharm新建模板默认添加个人信息的实例
Jul 15 Python
python快速排序的实现及运行时间比较
Nov 22 Python
使用Python的Turtle库绘制森林的实例
Dec 18 Python
python+opencv边缘提取与各函数参数解析
Mar 09 Python
python实现二分查找算法
Sep 18 Python
Python如何使用vars返回对象的属性列表
Oct 17 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
Nov 24 Python
python 通过使用Yolact训练数据集
Apr 06 Python
CocosCreator ScrollView优化系列之分帧加载
Apr 14 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安全编程之加密功能
2006/10/09 PHP
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
nicejforms——美化表单不用愁
2007/02/20 Javascript
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
jQuery实现在列表的首行添加数据
2015/05/19 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
前端弹出对话框 js实现ajax交互
2016/09/09 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
JS字符串去除连续或全部重复字符的实例
2018/03/08 Javascript
解决JS表单验证只有第一个IF起作用的问题
2018/12/04 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
Python实现的生成自我描述脚本分享(很有意思的程序)
2014/07/18 Python
python3编写C/S网络程序实例教程
2014/08/25 Python
用Python shell简化开发
2018/08/08 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
Python+OpenCV图片局部区域像素值处理改进版详解
2019/01/23 Python
django 实现后台从富文本提取纯文本
2020/07/02 Python
如何用Python绘制3D柱形图
2020/09/16 Python
python logging模块的使用详解
2020/10/23 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
2020/11/18 Python
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
计算机专业学生的自我评价
2013/12/15 职场文书
优秀演讲稿范文
2013/12/29 职场文书
班级读书活动总结
2014/06/30 职场文书
普通党员自我剖析材料
2014/10/07 职场文书
2014年财政所工作总结
2014/11/22 职场文书