Python切片
切片是啥, 可以吃么
嘛,所谓切片故名思意就有选取的意思啦, 跟java里面的subString()意思差不多, 从原始的字符串中按规则提取出新的字符串
切片肿么用哈
切片的用法很简单, 可以提取一个list或者tuple的部分元素, 比如,一个list如下:
L = ["miaomiao", "wangwang", "miemie", "aoao"]
我们现在要取前面两个:
L[0:2]
输出: ["miaomao", "wangwang]
如果第一个索引是0, 辣么也是可以省略的啦, L[:2]效果一样
其他的类似, 第一个索引是开始位置(0开始), 第二个索引表示结束位置但是不包括索引所在位置的元素,也就是第二个索引表示的位置的前一个元素的位置。
* 这里截取的方向是从左到右, 也就是如果第一个索引处向右如果没有遇到第二个索引表示的位置,辣么截取的就是空的,比如L[2: 1], 输出[]
我们知道python有个很人性的设定, 列表或者负数的下表从-1开始依次代表最后一个元素, 依次类推,不要迷糊哦,这里只是一种表示位置的写法,比如L[1: -1], 第二个索引-1代表的是倒数第一个元素的前一个元素, 所以这里的结果是:["wangwang", "miemie], 这个结果和L[-3:-1]一样的
L[1:]表示从位置1开始以后的所有元素
L[:-2] 表示直到倒数第三个位置的所有元素
*如果下表表示位置越界了, python会自动处理(越界部分不显示, 输出合法部分的信息)
还可以有第三个索引的写法, 不过第三个索引表示的前两个索引规则的方向以及表示的字符串格多少个街区
这里所谓的方向是指:
1从第一个索引所在的位置,是向正方向出发匹配索引二,还是从父方向匹配索引二
2第二个索引表示的位置是第二个索引的左边还是右边的那个元素, 如果是正方向,这里表示左边的那个元素,负方向表示右边的那个元素
嘛, 上面说的从左到右就是正方向的一种说法, 数学里面的一维坐标表示法
比如:
L[-1: -4: -2]
这里第三个所以为负, 所以方向是负的, 第一个索引表示的位置是倒数第一个, 从负方向出发找第二个索引表示的位置, 第二个索引是-4, 方向是负的,所以表示的是倒数第4个元素负方向也就是倒数第3个元素。
结果是:['aoao', 'wangwang']
辣么长,记不住
不管索引是正是否, 首先根据第三个索引判断方向, 如果没有第三个索引,那么默认是正向, 接着判断第一个索引表示的位置, 然后判断第二个索引表示的位置,但是第二个索引的位置没有被包含,如果是正向,辣么表示左边的元素, 负向表示右边的元素, 确定第二个索引的位置后, 根据方向判断是从第一个索引表示的位置的左边出发还是右边出发,没有遇到第二个索引表示的位置,辣么就是空的, 否则结果就是这些元素啦, 最后根据第三个索引的值隔着取就好了,默认是1
Python切片的更多相关文章
- 关于javascript里面仿python切片操作数组的使用方法
其实在使用了好一段时间的 python之后,我觉得最让我念念不忘的并不是python每次在写函数或者循环的时候可以少用{}括号这样的东西(ps:其实也是了..感觉很清爽,而且又开始写js的时候老是想用 ...
- 流畅的Python——切片
2.4 切片 在 Python 里,像列表(list).元组(tuple)和字符串(str)这类序列类型都支持切片操作,但是实际上切片操作比人们所想象的要强大很多. 在我个人的使用经历来看,在算法实践 ...
- Python切片(入门7)
转载请标明出处: http://www.cnblogs.com/why168888/p/6407977.html 本文出自:[Edwin博客园] Python切片 1. 对list进行切片 L = r ...
- 彻底搞懂Python切片操作
在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器.理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任 ...
- python 切片步长
python切片 切片:list变量[值下标:结束值下标] 什么意思呢? 就是获取 list中 下标从定义的位置开始获取数据到 自定义的下标位置结束, 但是切片有个规矩就是顾头不顾尾, 举个例子 ...
- 关于python切片操作笔记
一. Python可切片对象的索引方式 包括:正索引和负索引两部分,如下图所示,以a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]为例: python索引方式.jpg 二. P ...
- 详解Python 切片语法
Python的切片是特别常用的功能,主要用于对列表的元素取值.这篇文章主要介绍了详解Python 切片语法,需要的朋友可以参考下 Python的切片是特别常用的功能,主要用于对列表的元素取值.使用切片 ...
- 深入理解Python切片
Python序列的切片很基础同时也很重要,最近看到一个[::-1]的表达,不明所以,查了一些资料并实际操作,对Python切片有了更深刻的认识,以下结合例子详细说明.先看下切片的基本语法,一般认为切片 ...
- python 切片
本人的博客中的python内容基本上全是看着廖雪峰大神博客做的一个笔记 关于列表或者元祖的切片 下面说一下列表的切片的语法: L[起始位置:结束位置:步长] number = range(100) n ...
随机推荐
- java中获取接口(方法)中的参数名字(eclipse设置编译参数)(java8 javac -parameters)
interface接口参数 jdk1.7及以前使用spring功能实现的: 注意: 1.该功能只能获取类的方法的参数名,不能获取接口的方法的参数名. public static void test() ...
- java位运算符介绍
位操作是程序设计中对位模式按位或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运算的运算速度通常与加法 ...
- openssl大纲
1.加密和SSL机制:http://www.cnblogs.com/f-ck-need-u/p/6089523.html 2.openssl命令总指挥:http://www.cnblogs.com/f ...
- 微信支付开发-当前页面的URL未注册
微信支付的开发设置要求设置微信支付可以发起的目录. 当出现“当前页面的URL未注册”的错误时,检查你的授权目录(一般是未填写或填写有误),注意要二级或者三级目录完全匹配.
- web初学之request,session与application
request (1)request的setAttribute()与getAttribute()方法一般都是成对出现,首先通过setAttribute()方法设置属性与属性值,然后通过getAttri ...
- Canvas画图在360浏览器中跑偏的问题
问题描述,canvas画图的js代码中编写的是画正方形的代码,结果在360浏览器上变成了长方形,不知道怎么回事,请问各位大神是否遇到过此类问题? <!DOCTYPE html> <h ...
- iPhone手机安全指南
摘要:iPhone手机安全指南 - 1.iPhone解锁使用指纹:2.启用“查找我的iPhone”功能:3.Apple ID启用两步验证:4.修改SIM卡PIN码.5.iPhone被盗或丢失后,登录i ...
- wp中TextBox在中文输入法下清空问题
如图,在中文输入法下我希望点击“X”,然后把TextBox清空,一般来说,直接用TextBox.Text = "";或者TextBox.Text = String.Empty;就可 ...
- Java类额应用
基本数据类型包装类 Integer Character 其他的都是将首字母大写; 包装类和基本类型之间的转换: Integer int Integer i = new Integ ...
- C#中关于异步的三种写法
1 投票 IAsyncResult ar = d1.BeginInvoke(1, 3000, null, null); while (!ar.IsCompleted) class Program { ...