将列表和字符串切片到负零
我看过Python的非正式教程,关于切片的内容我都能理解,但有一个特殊情况让我有点困惑。看起来
'help'[:-0]
应该返回'help'
,但实际上返回的是''
。有没有什么好的方法来理解负数索引切片,这样我就能明白这个特殊情况了?
4 个回答
2
正如其他人所说,-0 == 0
,所以输出''
是完全合理的。
如果你想在使用负数索引时保持一致的行为,可以在切片索引中使用len()
:
>>> a = 'help'
>>> a[:len(a)-0]
'help'
3
-0 == 0
,所以 'help'[:-0]
和 'help'[0:0]
是一样的,我想你会同意它们的结果应该是 ''
(空字符串)。
下面这个问题提供了一些关于切片的好信息,以及如何理解切片的方式:解释Python的切片表示法
8
'help'[:-0]
实际上和 'help'[:0]
是一样的,所以它的结果是 ''
(也就是一个空字符串)。实际上,从交互式的 Python 解释器中可以看到,-0
和 0
是相同的:
>>> -0
0