前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >有关Python的分片操作

有关Python的分片操作

作者头像
py3study
发布2020-01-07 10:54:34
8080
发布2020-01-07 10:54:34
举报
文章被收录于专栏:python3python3

刚在论坛python版 http://bbs.byr.cn/#!article/Python/1693 解决了一个关于python分片的问题。

问题:

代码语言:javascript
复制
uesrList = ['1','2','3','4','5','6'] 
subList1 = uesrList[2:5] 
subList2 = uesrList[-3:-1] 
subList3 = uesrList[0:-2] 
subList4 = uesrList[0:-3] 
subList5 = uesrList[-3:0] 
print(subList1) 
print(subList2) 
print(subList3) 
print(subList4) 
print(subList5) 


#输出
['3', '4', '5'] 
['4', '5'] 
['1', '2', '3', '4'] 
['1', '2', '3'] 
[]

为什么会出现返回[ ]?   分片的结果为什么会是这样?

原因:

经常看到[a:b]这样对list的分片操作。 其实python的分片是有三块内容的 如:[a:b:c]   其中a,b,c都分别可以省略。

不过c默认是1, 如果你不显式的设定它为负数,它之会从前往后(从左往右)遍历。

比如[-2:]

在索引-2的位置上是 5,按照默认顺序从左往右,因此结果是从5往后。结果就会输出 ['5' , '6']

如果c为负,则顺序相反,为从右到左,如[-2::-1]即为 ['5', '4', '3', '2', '1']

因此根据索引只是找到位置,之后按照顺序方向遍历到规定的位置即可。

注:

遍历过程中,第二个索引(b)所在的位置一定是在第一个元素(a)按 顺序方向的后面,如果是[-1:-2]这样的,按

照从左到右找不到则也会返回空list。

因此任何[a:0] 的都是空list, 要么是因为 索引0就是第一个,还不能算 (分片操作包括[ ]左边不包括右边)返回空,

要么是因为索引0后面的元素,按照从左向右的顺序是找不到第一个元素的。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档