一尘不染

通过切片了解字符串反转

python

我一直在寻找一种向后打印字符串的方法,在Google上进行快速搜索后,我发现了这种方法:

假设a是一个字符串变量。这将a向后返回字符串:

a[::-1]

谁能解释它的工作原理?


阅读 166

收藏
2020-12-20

共1个答案

一尘不染

当然,[::]扩展切片运算符。它允许您采用子字符串。基本上,它通过指定要用作[begin:end:step]的元素来工作,并且适用于所有序列。关于它的两件事:

  • 您可以省略一个或多个元素,并且做“正确的事情”
  • 开始,结束和步骤的负数具有含义

对于开始和结束,如果您给出负数,则意味着从序列的末尾开始计数。例如,如果我有一个列表:

l = [1,2,3]

然后l[-1]是3,l[-2]是2,l[-3]是1。

对于step参数,负数表示在序列中 向后 工作。所以对于一个列表:

l = [1,2,3,4,5,6,7,8,9,10]

您可以写l[::-1]这基本上意味着在阅读列表时使用步长为-1。在填充开始和停止位置时,Python会“做正确的事”,因此它将向后遍历列表并为您提供[10,9,8,7,6,5,4,3,2,1]

我已经给出了带有列表的示例,但是字符串只是另一个序列,并且以相同的方式工作。因此,这a[::-1]意味着通过加入您通过向后浏览字符串而获得的字符来构建字符串。

2020-12-20