通过切片理解字符串反转

2024-04-26 13:59:12 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

a[::-1]

有人能解释一下这是怎么回事吗?


Tags: 方法字符串google
3条回答

“-1”部分表示切片的“步骤”部分在本例中,它一次遍历字符串1个字符,但向后(负步骤表示从字符串的末尾开始)。例如,如果将步骤指定为2,则将获取字符串的每一个其他字符,从第一个字符开始。如果指定步骤-2,则将得到字符串的每一个其他字符,从最后一个字符开始并向后工作。

所以,简而言之,如果a = '12345'

  • a[::2]变成135
  • a[::-1]变成54321
  • a[::-2]变成531

当然,[::]extended slice运算符。它允许您获取子字符串。基本上,它的工作方式是指定要作为[开始:结束:步骤]的元素,并且它适用于所有序列。有两件事很好:

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

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

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在填写start和stop时会“做正确的事情”,因此它会反向遍历列表并给出[10,9,8,7,6,5,4,3,2,1]

我已经给出了带有列表的示例,但是字符串只是另一个序列,工作方式相同。因此a[::-1]意味着通过向后遍历字符串来连接获得的字符来构建字符串。

我认为下面的内容对反向打印字符串更有意义,但也许这只是我自己:

for char in reversed( myString ):  
  print( char, end = "" )

相关问题 更多 >