通过切片了解字符串反转
我一直在寻找一种向后打印字符串的方法,在Google上进行快速搜索后,我发现了这种方法:
假设a
是一个字符串变量。这将a
向后返回字符串:
a[::-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]
意味着通过加入您通过向后浏览字符串而获得的字符来构建字符串。