在编写一些单元测试时偶然发现了一些有些令人困惑的事情:
blah = ['a', 'b', 'c']
blah[:-3] # []
blah[:-2] # ['a']
blah[:-1] # ['a', 'b']
blah[:-0] # []
不能为我的生活弄清楚为什么blah[:-0] # []
应该是这种情况,这种模式似乎肯定表明它应该是['a', 'b', 'c']
。任何人都可以帮助解释为什么会这样吗?未能在文档中找到关于为什么会出现这种情况的提及。
答案 0 :(得分:11)
-0
为0
,从list
包含的开头到索引0
非包含的切片为空list
。
答案 1 :(得分:6)
Python不会-0
处理与0
不同的任何内容。
blah[:0]
表示所有元素,但不包括第一个元素。这是一个空列表,blah[:-0]
完全相同。
您可以通过检查
进行测试blah[0:]
是整个列表,从第一个元素开始。