为什么slice [:-0]在Python中返回空列表

时间:2015-06-16 22:39:55

标签: python list slice negative-number

在编写一些单元测试时偶然发现了一些有些令人困惑的事情:

blah = ['a', 'b', 'c']
blah[:-3] # []
blah[:-2] # ['a']
blah[:-1] # ['a', 'b']
blah[:-0] # []

不能为我的生活弄清楚为什么blah[:-0] # []应该是这种情况,这种模式似乎肯定表明它应该是['a', 'b', 'c']。任何人都可以帮助解释为什么会这样吗?未能在文档中找到关于为什么会出现这种情况的提及。

2 个答案:

答案 0 :(得分:11)

-00,从list包含的开头到索引0非包含的切片为空list

答案 1 :(得分:6)

Python不会-0处理与0不同的任何内容。

blah[:0]

表示所有元素,但不包括第一个元素。这是一个空列表,blah[:-0]完全相同。

您可以通过检查

进行测试
blah[0:]

是整个列表,从第一个元素开始。