为了账号安全,请及时绑定邮箱和手机立即绑定

倒序切片求详解

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']

>>> L[-2:]
['Bart', 'Paul']

>>> L[:-2]
['Adam', 'Lisa']

>>> L[-3:-1]
['Lisa', 'Bart']

>>> L[-4:-1:2]
['Adam', 'Bart']
看不懂这个-3:-1  它-1不是Baul吗
然后-4:-1:2   Adam,Paul,Bart

正在回答

4 回答

 [start:stop:step]即:[开始索引:结束索引:步长值]

* 开始索引:同其它语言一样,从0开始。序列从左向右方向中,第一个值的索引为0,最后一个为-1
* 结束索引:切片操作符将取到该索引为止,不包含该索引的值。
* 步长值:默认是一个接着一个切取,如果为2,则表示进行隔一取一操作。步长值为正时表示从左向右取,如果为负,则表示从右向左取。步长值不能为0;

所谓逆序截取,就是先截取,再进行逆序.

列表['Adam', 'Lisa', 'Bart', 'Paul']

正序     0           1        2        3

逆序    -4          -3      -2        -1  

如果-3:-1 ,则step默认为正1,得半开半闭区间为['Lisa', 'Bart', 'Paul')得结果['Lisa', 'Bart']

如果是-4:-1,则相当于0:3,得半开半闭区间为['Adam', 'Lisa', 'Bart', 'Paul')即['Adam', 'Lisa', 'Bart']

若step=2则得['Adam', 'Bart']

l =list(range(10))得0到9的列表,1:3的得[1,2,3)即[1,2],1:3:2 得[1]


6 回复 有任何疑惑可以回复我~

我觉得计算机语言一般也都遵循左闭右开的原则,就是包含起始值,不包含结束值[。。。)酱紫

0 回复 有任何疑惑可以回复我~

倒序来的话,倒数第一个就是‘-1’啦,不存在0。如-1 就是'Paul’

而0只是在正序的第一个开始进行的,如0就是‘Adam'

在切片运算中,遵循原则是‘左闭右开’的原则,既‘:'左边包含,右边不包含。

0 回复 有任何疑惑可以回复我~
#1

iamrookie 提问者

懂了,比如-4:2它就是Adam,Bart是这样吧
2018-05-06 回复 有任何疑惑可以回复我~
#2

iamrookie 提问者

如果按照这样-4:-2那么 -4:-1:2是不是一样, 然后比如有10name,每两个取一个1:3:2是不是取2,4,6,8
2018-05-06 回复 有任何疑惑可以回复我~

-1是'Paul',因为没有-0啊,-0还是0,也就是'Adam'

0 回复 有任何疑惑可以回复我~
#1

iamrookie 提问者

那么-4:-2是不是一样呢
2018-05-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

倒序切片求详解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信