我一直在寻找一种向后打印字符串的方法,在Google上进行快速搜索后,我发现了这种方法:
假设a是一个字符串变量。这将a向后返回字符串:
a
a[::-1]
谁能解释它的工作原理?
当然,[::]是扩展切片运算符。它允许您采用子字符串。基本上,它通过指定要用作[begin:end:step]的元素来工作,并且适用于所有序列。关于它的两件事:
[::]
对于开始和结束,如果您给出负数,则意味着从序列的末尾开始计数。例如,如果我有一个列表:
l = [1,2,3]
然后l[-1]是3,l[-2]是2,l[-3]是1。
l[-1]
l[-2]
l[-3]
对于step参数,负数表示在序列中 向后 工作。所以对于一个列表:
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]。
l[::-1]
[10,9,8,7,6,5,4,3,2,1]
我已经给出了带有列表的示例,但是字符串只是另一个序列,并且以相同的方式工作。因此,这a[::-1]意味着通过加入您通过向后浏览字符串而获得的字符来构建字符串。