将列表和字符串切片到负零

2 投票
4 回答
872 浏览
提问于 2025-04-16 14:55

我看过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 解释器中可以看到,-00 是相同的:

>>> -0
0

撰写回答