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自动生成文章
Dec 25 Python
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
Python实现的弹球小游戏示例
Aug 01 Python
Python实现的密码强度检测器示例
Aug 23 Python
Python中的groupby分组功能的实例代码
Jul 11 Python
详解PyCharm配置Anaconda的艰难心路历程
Aug 13 Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 Python
Python操作Excel把数据分给sheet
May 20 Python
Python实现Keras搭建神经网络训练分类模型教程
Jun 12 Python
简单了解Django项目应用创建过程
Jul 06 Python
浅析关于Keras的安装(pycharm)和初步理解
Oct 23 Python
Python os和os.path模块详情
Apr 02 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
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
PHP中鲜为人知的10个函数
2014/02/28 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
深入了解PHP中的Array数组和foreach
2016/11/06 PHP
JS解析XML的实现代码
2009/11/12 Javascript
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
2015/05/12 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
详解ES6中的let命令
2020/04/05 Javascript
原生JS仿QQ阅读点击展开、收起效果
2017/03/08 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
2017/04/13 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
Webpack path与publicPath的区别详解
2018/05/03 Javascript
Vue不能观察到数组length的变化
2018/06/08 Javascript
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
[56:18]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第二局
2016/03/05 DOTA
python单链表实现代码实例
2013/11/21 Python
用Python实现数据的透视表的方法
2018/11/16 Python
python 中如何获取列表的索引
2019/07/02 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
Python中用pyinstaller打包时的图标问题及解决方法
2020/02/17 Python
结合 CSS3 transition transform 实现简单的跑马灯效果的示例
2018/02/07 HTML / CSS
美国现代家具和家居商店:Apt2B
2016/08/29 全球购物
New Balance德国官方网站:购买鞋子和服装
2019/08/31 全球购物
大学生毕业鉴定
2014/01/31 职场文书
小学红领巾广播稿(3篇)
2014/09/13 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
python中urllib包的网络请求教程
2022/04/19 Python
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android