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中使用matplotlib模块绘制数据图的示例
May 04 Python
深入讲解Python中的迭代器和生成器
Oct 26 Python
Python简单连接MongoDB数据库的方法
Mar 15 Python
Python中的浮点数原理与运算分析
Oct 12 Python
Python基于FTP模块实现ftp文件上传操作示例
Apr 23 Python
Python提取特定时间段内数据的方法实例
Apr 01 Python
用python拟合等角螺线的实现示例
Dec 27 Python
关于pytorch中全连接神经网络搭建两种模式详解
Jan 14 Python
tf.concat中axis的含义与使用详解
Feb 07 Python
Python configparser模块操作代码实例
Jun 08 Python
python实现测试工具(二)——简单的ui测试工具
Oct 19 Python
Python 获取异常(Exception)信息的几种方法
Dec 29 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实现手机归属地查询API接口实现代码
2012/08/27 PHP
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
jQuery ajax 路由和过滤器使用说明
2011/08/02 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
使用Angular.js实现简单的购物车功能
2016/11/21 Javascript
jQuery动态产生select option下拉列表
2017/03/15 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
python常规方法实现数组的全排列
2015/03/17 Python
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2015/04/05 Python
Python中生成器和yield语句的用法详解
2015/04/17 Python
使用python爬取B站千万级数据
2018/06/08 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
Python3+Appium安装使用教程
2019/07/05 Python
python动态视频下载器的实现方法
2019/09/16 Python
flask的orm框架SQLAlchemy查询实现解析
2019/12/12 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
JD Sports德国官网:英国领先的运动鞋和运动服饰零售商
2018/02/26 全球购物
请写出 float x 与"零值"比较的 if 语句
2016/01/04 面试题
小学教师的个人自我鉴定
2013/10/26 职场文书
经管应届生求职信
2013/11/17 职场文书
银行职业规划书范文
2013/12/28 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
医院标语大全
2014/06/23 职场文书
小学开学标语
2014/07/01 职场文书
绿色小区申报材料
2014/08/22 职场文书
小学生运动会报道稿
2014/09/12 职场文书
保护环境的宣传语
2015/07/13 职场文书
运动员入场前导词
2015/07/20 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
Java图书管理系统,课程设计必用(源码+文档)
2021/06/30 Java/Android
Python实现简单得递归下降Parser
2022/05/02 Python