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

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

a[::-1]

谁能解释它的工作原理?

最佳答案

当然,[::]extended slice运算符。它允许您采用子字符串。基本上,它通过指定要用作[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]的意思是通过加入您通过向后遍历字符串而获得的字符来构建字符串。

    10-06 12:43
    查看更多