【发布时间】:2017-06-27 16:29:16
【问题描述】:
在python切片中'如果第一个索引大于或等于第二个结果是一个空字符串'那么为什么下面的操作返回字符串?
>>> msg = 'HelloWorld'
>>> msg[4:-2]
'oWor'
【问题讨论】:
-
因为你有-2,所以在列表中是反向的!
标签: python python-3.x
在python切片中'如果第一个索引大于或等于第二个结果是一个空字符串'那么为什么下面的操作返回字符串?
>>> msg = 'HelloWorld'
>>> msg[4:-2]
'oWor'
【问题讨论】:
标签: python python-3.x
您给出的报价不正确或不完整:
如果使用负数,则作为文件的反向索引,即[4:-2]等价于[4:len(msg)-2]即[4:8]
请注意,如果您使用反向索引比第一个索引更进一步,您确实会得到一个空字符串。
msg[4:-8] # Equivalent to msg[4:1], by the same formula
>>> ''
【讨论】:
python 切片中的负数有效地从正数反向工作。他们从字符串的末端开始并向前移动。所以你的代码说的是给我一个从第 4 个索引开始的字符串,一直到最后的 2。
【讨论】:
如果为负数,则从右开始计数。 -1 是最后一个字符。要从正确的索引位置访问字符串,我们需要使用 - 和索引号。所以对于 -2,它就像在 l 之前取字符(对于给定的例子),它的总长度必须是 4。所以它只会是 owor。
【讨论】: