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中使用PIL库实现图片高斯模糊实例
Feb 08 Python
Python实现的十进制小数与二进制小数相互转换功能
Oct 12 Python
python logging日志模块的详解
Oct 29 Python
详细解读tornado协程(coroutine)原理
Jan 15 Python
对python过滤器和lambda函数的用法详解
Jan 21 Python
基于MATLAB和Python实现MFCC特征参数提取
Aug 13 Python
关于多元线性回归分析——Python&amp;SPSS
Feb 24 Python
Python小整数对象池和字符串intern实例解析
Mar 21 Python
Win 10下Anaconda虚拟环境的教程
May 18 Python
python安装cx_Oracle和wxPython的方法
Sep 14 Python
Python类绑定方法及非绑定方法实例解析
Oct 09 Python
详解Django ORM引发的数据库N+1性能问题
Oct 12 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程序总是提示验证码输入有误解决方案
2015/01/07 PHP
php中switch语句用法详解
2015/08/17 PHP
php 实现进制相互转换
2016/04/07 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
javascript 屏蔽鼠标键盘的几段代码
2008/01/02 Javascript
基于jQuery的Spin Button自定义文本框数值自增或自减
2010/07/17 Javascript
js对象的比较
2011/02/26 Javascript
用js判断是否为360浏览器的实现代码
2015/01/15 Javascript
javascript判断变量是否有值的方法
2015/04/20 Javascript
详解 javascript中offsetleft属性的用法
2015/11/11 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
原生js轮播(仿慕课网)
2017/02/15 Javascript
js正则表达式验证表单【完整版】
2017/03/06 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
JavaScript定义函数_动力节点Java学院整理
2017/06/27 Javascript
mui 打开新窗口的方式总结及注意事项
2017/08/20 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
Vue实现多标签选择器
2019/11/28 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
原生js实现分页效果
2020/09/23 Javascript
python实现2014火车票查询代码分享
2014/01/10 Python
python根据出生年份简单计算生肖的方法
2015/03/27 Python
简单的Python的curses库使用教程
2015/04/11 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
2018/04/23 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
2020/02/07 Python
python正则表达式实例代码
2020/03/03 Python
python爬虫实现POST request payload形式的请求
2020/04/30 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
生产部管理制度
2014/01/31 职场文书
销售人员获奖感言
2014/02/05 职场文书
虎兄虎弟观后感
2015/06/12 职场文书