【发布时间】:2017-05-13 08:20:53
【问题描述】:
我试图了解使用切片索引和步骤反转切片背后的逻辑。
首先,我可以像这样使用切片步骤来反转字符串:
a = "Hello"
a[::-1]
>>> 'olleH'
另外,我只能像这样反转字符串的一部分:
a = "Hello"
a[:2:-1]
>>> 'ol'
但是当我尝试使用这样的另一个范围来反转字符串时:
a = "Hello"
a[1:3:-1]
>>> ''
我得到一个空字符串。
但是,如果我像这个例子一样反转范围:
a = "Hello"
a[4:1:-1]
>>> 'oll'
我得到了索引 1 和 4 之间的反向切片。
但是,如果我错了,请纠正我,我知道切片的第一个索引必须小于第二个索引。
这就是为什么当我运行这个例子时:
a = "Hello"
a[4:1]
>>> ''
我得到一个空字符串。
那么,有人可以向我解释为什么反转一个字符串(切片),而一个负步长的反转范围有效,并且使用切片中第一个索引小于第二个索引的逻辑会给出一个空字符串。
感谢您的回答。
【问题讨论】:
-
感谢您的评论。在发布答案之前,我尝试进行搜索。我没有找到这个链接。