我已经阅读了切片上的Python informal tutorial,除了一个边缘情况外,这对我来说都是有意义的。好像是
'help'[:-0]
应评估为'help'
,但它的评估结果为''
。考虑负面索引切片的好方法是什么,以便这个特殊的边缘情况有意义?
答案 0 :(得分:7)
'help'[:-0]
实际上等于'help'[:0]
,在这种情况下,它的评估结果为''
。事实上,正如您从交互式python解释器中看到的那样,-0
与0
相同:
>>> -0
0
答案 1 :(得分:3)
-0 == 0
,因此'help'[:-0]
相当于'help'[0:0]
,我认为您同意应该''
。
以下问题对切片有一些很好的一般信息以及如何考虑它们:Explain Python's slice notation
答案 2 :(得分:1)
正如其他人所说,-0 == 0
,在这种情况下,''
结果是正确的。我想你正在寻找:
'help'[:]
切片时,如果省略开始它从0开始,如果省略结束,它会前进到收集结束(在你的情况下是一个字符串)。因此,[:]
表示“开始结束”。
答案 3 :(得分:1)
正如其他人所说,''
输出完全有意义。
无论如何,如果在使用否定指标时希望保持一致的行为,可以采用以下解决方法:
>>> a = 'help'
>>> a[:len(a)-0]
'help'