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代码制作configure文件示例
Jul 28 Python
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
May 22 Python
Python中的字典与成员运算符初步探究
Oct 13 Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 Python
Python利用Beautiful Soup模块搜索内容详解
Mar 29 Python
Django项目中用JS实现加载子页面并传值的方法
May 28 Python
对Django 转发和重定向的实例详解
Aug 06 Python
python实现简单井字棋游戏
Mar 04 Python
哪些是python中web开发框架
Jun 17 Python
PyQt5 QDockWidget控件应用详解
Aug 12 Python
pandas apply多线程实现代码
Aug 17 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 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 mssql 时间格式问题
2009/01/13 PHP
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
Thinkphp关闭缓存的方法
2015/06/26 PHP
Zend Framework教程之Bootstrap类用法概述
2016/03/14 PHP
基于Laravel-admin 后台的自定义页面用法详解
2019/09/30 PHP
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
通过javascript设置css属性的代码
2009/12/28 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
JavaScript window.location对象
2014/11/14 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
js实现有时间限制消失的图片方法
2015/02/27 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
2016/03/22 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
node.js实现带进度条的多文件上传
2020/03/27 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
python求绝对值的三种方法小结
2019/12/04 Python
Python字符串、列表、元组、字典、集合的补充实例详解
2019/12/20 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
用React加CSS3实现微信拆红包动画效果
2017/03/13 HTML / CSS
环法自行车赛官方商店:Le Tour de France
2017/08/27 全球购物
联想台湾官网:Lenovo TW
2018/05/09 全球购物
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
C/C++程序员常见面试题一
2012/12/08 面试题
大学生党课思想汇报
2013/12/29 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
规范化管理年活动总结
2014/08/29 职场文书
警察群众路线整改措施
2014/09/26 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
航班延误投诉信
2015/07/02 职场文书
导游词之天津盘山
2019/11/01 职场文书
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
浅谈spring boot使用thymeleaf版本的问题
2021/08/04 Java/Android