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通过urllib2爬网页上种子下载示例
Feb 24 Python
Python3连接MySQL(pymysql)模拟转账实现代码
May 24 Python
python获取当前用户的主目录路径方法(推荐)
Jan 12 Python
python字符串循环左移
Mar 08 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
Jul 31 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
Aug 02 Python
Python3分析处理声音数据的例子
Aug 27 Python
Python FtpLib模块应用操作详解
Dec 12 Python
.dcm格式文件软件读取及python处理详解
Jan 16 Python
Python3和PyCharm安装与环境配置【图文教程】
Feb 14 Python
python实现126邮箱发送邮件
May 20 Python
Python return语句如何实现结果返回调用
Oct 15 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各种编码集详解和以及在什么情况下进行使用
2011/09/11 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
JS特殊函数(Function()构造函数、函数直接量)区别介绍
2013/05/19 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
浅谈js的解析顺序 作用域 严格模式
2017/10/23 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
微信小程序之onLaunch与onload异步问题详解
2019/03/28 Javascript
nodejs对项目下所有空文件夹创建gitkeep的方法
2019/08/02 NodeJs
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
[01:32:22]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第一场 2月5日
2021/03/11 DOTA
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
浅谈Python peewee 使用经验
2017/10/20 Python
python每天定时运行某程序代码
2019/08/16 Python
python闭包与引用以及需要注意的陷阱
2020/09/18 Python
Python中Selenium模块的使用详解
2020/10/09 Python
计算机专业应届毕业生自荐信
2013/09/26 职场文书
会计主管岗位职责
2014/01/03 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
红色影片观后感
2015/06/18 职场文书
教师节简报
2015/07/20 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python
vue-cli4.5.x快速搭建项目
2021/05/30 Vue.js
html粘性页脚的具体使用
2022/01/18 HTML / CSS
MySQL学习之基础命令实操总结
2022/03/19 MySQL
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers