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 08 Python
Python实现SVN的目录周期性备份实例
Jul 17 Python
Python开发之快速搭建自动回复微信公众号功能
Apr 22 Python
django批量导入xml数据
Oct 16 Python
python3 图片referer防盗链的实现方法
Mar 12 Python
详谈Pandas中iloc和loc以及ix的区别
Jun 08 Python
Python 2.7中文显示与处理方法
Jul 16 Python
python多进程读图提取特征存npy
May 21 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
flask实现验证码并验证功能
Dec 05 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
Jul 18 Python
python 实现Harris角点检测算法
Dec 11 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读取TXT文件向数据库导入海量数据的方法
2013/04/23 PHP
Redis使用Eval多个键值自增的操作实例
2016/11/04 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
jquery里的正则表达式说明
2011/08/03 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
2018/09/06 Javascript
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
python self,cls,decorator的理解
2009/07/13 Python
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
2014/06/18 Python
Python实现根据IP地址和子网掩码算出网段的方法
2015/07/30 Python
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
Python读取图片为16进制表示简单代码
2018/01/19 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
python中线程和进程有何区别
2020/06/17 Python
使用HTML5 Canvas API中的clip()方法裁剪区域图像
2016/03/25 HTML / CSS
大学生简历中个人的自我评价
2013/10/06 职场文书
迎接领导欢迎词
2014/01/11 职场文书
骨干教师培训感言
2014/01/16 职场文书
《记承天寺夜游》教学反思
2014/02/16 职场文书
国际贸易毕业生自荐书
2014/06/22 职场文书
公司周年庆活动方案
2014/08/25 职场文书
党支部创先争优活动总结
2014/08/28 职场文书
大雁塔英文导游词
2015/02/10 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
表彰大会新闻稿
2015/07/17 职场文书
青年联谊会致辞
2015/07/31 职场文书
我的暑假生活作文(五年级)范文
2019/08/07 职场文书