通过切片了解字符串反转

发布于 2021-01-29 19:34:22

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

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

a[::-1]

谁能解释它的工作原理?

关注者
0
被浏览
93
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    当然,[::]扩展切片运算符。它允许您采用子字符串。基本上,它通过指定要用作[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]意味着通过加入您通过向后浏览字符串而获得的字符来构建字符串。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看