字符串切片问题

String slicing issue

现在,我正在尝试了解字符串切片的工作原理。在示例中:

str='HELLO WORLD'

如果我尝试 str[-2:1:-2],我得到:

LO L

我想我应该得到 LO LE 因为我们要倒退到索引 1

我的推理有什么问题?

字符串切片在最后一个索引之前结束......无论向前还是向后迭代

因此,如果您想要在示例中输入的输出,则需要

my_str[-2:0:-2]

(并且不要使用 str 作为变量名)

切片表示法的停止参数始终是互斥的。意思是,Python 将切片到但不包括索引 1.

要获得您想要的输出,请将 0 作为停止点:

>>> 'HELLO WORLD'[-2:0:-2]
'LO LE'
>>> 'HELLO WORLD'[-2::-2]  # Equivalent in this case
'LO LE'
>>>