鱼C论坛

 找回密码
 立即注册
查看: 4355|回复: 4

[已解决]列表分片步长为负数没懂求解

[复制链接]
发表于 2015-5-17 21:11:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
第一次提问,怯怯的。。
是这样:
>>> list1 = [1, 2, 3]
>>> list1
[1, 2, 3]
>>> list1[0:3:-1]
[]
>>> list1[::-1]
[3, 2, 1]

这里的list1[0:3]和list[:]应该是一样的吧?
那为什么list1[0:3:-1]和list1[::-1]的结果不一样呢?

最佳答案
2015-5-17 21:27:11
负数步长时,若起始索引的位置比终止索引的位置靠前,刚切片为空列表,这个楼主可自行验证
说说我刚试的几个小例子:
>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> a[:5:-1]
[9, 8, 7, 6]
>>> a[5::-1]
[5, 4, 3, 2, 1, 0]
>>> a[:9:-1]
[]
>>> a[:5:-2]
[9, 7]
根据以上几个例子:
1、当步长为负值时,若起始索引未给出,它会将其定为尾部;
2、当步长为负值时,若终止索引未给出,它会将其定为头部;
两者正好与步长为正时相反
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-5-17 21:27:11 | 显示全部楼层    本楼为最佳答案   
负数步长时,若起始索引的位置比终止索引的位置靠前,刚切片为空列表,这个楼主可自行验证
说说我刚试的几个小例子:
>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> a[:5:-1]
[9, 8, 7, 6]
>>> a[5::-1]
[5, 4, 3, 2, 1, 0]
>>> a[:9:-1]
[]
>>> a[:5:-2]
[9, 7]
根据以上几个例子:
1、当步长为负值时,若起始索引未给出,它会将其定为尾部;
2、当步长为负值时,若终止索引未给出,它会将其定为头部;
两者正好与步长为正时相反
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-17 22:34:12 | 显示全部楼层
lightninng 发表于 2015-5-17 21:27
负数步长时,若起始索引的位置比终止索引的位置靠前,刚切片为空列表,这个楼主可自行验证
说说我刚试的几 ...

想了好久,觉得是这样的,可是遇到一个小小的问题,强迫症就犯了。。
是这样:
>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[:5:-1]
[9, 8, 7, 6]
>>> a[9:5:-1]
[9, 8, 7, 6]
>>> a[5::-1]
[5, 4, 3, 2, 1, 0]
>>> a[5:0:-1]
[5, 4, 3, 2, 1]
>>> a[5::-1]
[5, 4, 3, 2, 1, 0]
>>> a[5:0:-1]
[5, 4, 3, 2, 1]
觉得好像当步长为负值时,终止索引不给出,Ta默认了头部的前一个?


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-17 23:40:05 | 显示全部楼层
冷月云殇 发表于 2015-5-17 22:34
想了好久,觉得是这样的,可是遇到一个小小的问题,强迫症就犯了。。
是这样:>>> a[5::-1] ...

是的,这和步长为正时正好相反(不给起始从头开始,不给终止到尾结束),参考步长为正时你不给出起始索引或终止索引的情况即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-18 08:44:56 From FishC Mobile | 显示全部楼层
嗯,我懂了,谢谢 lightninng~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 09:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表