在python切片中'如果第一个索引大于或等于第二个结果是空字符串'那么为什么以下操作返回字符串?
>>> msg = 'HelloWorld'
>>> msg[4:-2]
'oWor'
答案 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。