您的位置:首页 > 编程语言 > Python开发

python 切片

2017-09-18 17:53 169 查看
切片是用来处理list/tuple的常用手段,但是对于初级者最好还是做个笔记整理下用法比较好

举个例子(以list为例,tuple也是一样的用法)

那么针对list中的元素,它的index是怎么定义的呢,看下图



正数index从0到4,这个没问题吧

负数呢,index从-1到-5,这个也没问题吧,

那,切片到底怎么用呢,没干货是解决不了问题的,对吧

用法:

list[x:y:z]

这个x, y, z 呢,就是切片参数,它的范围呢是-∞ ~ ∞ (负无穷大 ~ 无穷大),但必须是整数

x: 表示从哪里开始

y: 表示到哪里结束

z: 表示从x 到 y你想用多少位作为间隔,比如1表示间隔1,2表示间隔2,就是跳跃式取值,3呢就是间隔3个取,能理解吗?

然后就是从x开始,那x元素可以取到,但是取不到y,因为到y截止了,这个非常重要,一定要记住

来吧,上题目

print a[::]
print a[1::]
print a[1:2:]
print a[1:2:1]
print a[-1:-2:-1]


运行结果是什么呢,看下面

[1, 2, 3, 4, 5] 为什么是全部呢,因为你没有给开始地址,结束地址,以及间隔,所以它把所有元素都罗列出来
[2, 3, 4, 5] 因为你给了开始地址1,那元素2对应的index是不是1,对了,所以就从这里取,而且你也没给结束地址,就取出这样的结果
[2] 因为你给出从索引1取到索引2,索引1对应元素2,索引2对应元素3,参考上面的总结,索引2是结束地址,这个元素是取不上的,所以返回[2]
[2] 虽然多了个间隔1,但是原理同上
[5] 索引-1 对应的元素是5,索引-2对应的元素是4,间隔为1,所以返回[5]


那么对于开始地址,结束地址,间隔如果是正负数混搭的怎么理解呢,看下图

我总结几点如下()

格式是开始地址,结束地址,间隔

1 负正正 -> 开始地址为负,那么只有间隔为正才会有可能切到值,因为间隔为负会把它引导负无穷大, 顺时针取

2 负正负 -> 参考1

3 正负正 -> 参考4

4 正负负 -> 开始地址为正,那么只有间隔为负才会有可能切到值,因为间隔为正会把它引导正无穷大,逆时针取




  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: