如果第一个索引大于或等于第二个索引,则结果为空字符串

时间:2017-06-27 16:29:17

标签: python python-3.x

在python切片中'如果第一个索引大于或等于第二个结果是空字符串'那么为什么以下操作返回字符串?

>>> msg = 'HelloWorld'
>>> msg[4:-2]
'oWor'

3 个答案:

答案 0 :(得分:5)

您提供的报价不正确或不完整:

如果使用负数,它将用作文件的反向索引,这意味着[4:-2]等同于[4:len(msg)-2],即[4:8]

请注意,如果您使用反向索引进一步指向第一个索引,那么您确实会有一个空字符串。

msg[4:-8] # Equivalent to msg[4:1], by the same formula
>>> ''

答案 1 :(得分:0)

python切片中的负数有效地从正面向后工作。它们从字符串的末尾开始向前移动。那么你的代码所说的是给我一个从第4个索引开始的字符串,从结尾开始直到2。

答案 2 :(得分:0)

索引如果为负数则从右侧算起。 -1是最后一个字符。要从右索引位置访问字符串,我们需要使用 - 使用索引号。所以对于-2,它就像是在l之前取代字符(对于给定的例子),它的总长度必须是4.所以它只是owor。