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实现在无须过多援引的情况下创建字典的方法
Sep 25 Python
python条件变量之生产者与消费者操作实例分析
Mar 22 Python
Python使用matplotlib绘制余弦的散点图示例
Mar 14 Python
ubuntu安装sublime3并配置python3环境的方法
Mar 15 Python
python通过伪装头部数据抵抗反爬虫的实例
May 07 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
Dec 05 Python
django项目登录中使用图片验证码的实现方法
Aug 15 Python
pycharm运行scrapy过程图解
Nov 22 Python
Python tkinter模版代码实例
Feb 05 Python
tensorflow 实现自定义梯度反向传播代码
Feb 10 Python
一文解决django 2.2与mysql兼容性问题
Jul 15 Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 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
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
解析thinkphp基本配置 convention.php
2013/06/18 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
PHP中的表达式简述
2016/05/29 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
2020/05/14 PHP
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
2012/02/27 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
解析window.open的使用方法总结
2013/06/19 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
jquery提示效果实例分析
2014/11/25 Javascript
使用JavaScript开发IE浏览器本地插件实例
2015/02/18 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
2018/10/08 Javascript
angular4强制刷新视图的方法
2018/10/09 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
vue 实现强制类型转换 数字类型转为字符串
2019/11/07 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python的dict,set,list,tuple应用详解
2014/07/24 Python
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
Python类的继承、多态及获取对象信息操作详解
2019/02/28 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
世界上最大的街头服饰网站:Karmaloop
2017/02/04 全球购物
SQL数据库笔试题
2016/03/08 面试题
Java程序员面试题
2016/09/27 面试题
java程序员面试交流
2012/11/29 面试题
幼儿教师自我鉴定
2013/11/02 职场文书
给同学的道歉信
2014/01/16 职场文书
学习党的群众路线剖析材料
2014/10/09 职场文书
Redis如何一键部署脚本
2021/04/12 Redis