python反转字符串

img


例1:
txt = "Hello World" [::-1]
print(txt)
例2:
txt = "Hello World" [11:0:-1]
print(txt)

为什么例1和例2打印出来的结果不一样 python版本3.7和3.9都测试过。
例2改成 "Hello World" [11::-1] 就和例1结果一样
两个冒号 中间的这个值还可以设置为多少

这个例子明显是错误的,[11:0:-1],第二个数字是开区间,只能取到这个位置之前的那个数,也就是说,如果是倒过来切片的话,只能取到索引1。
改成[11::-1] 就相当于省略了终止位置,表示全部切片

见下面的测试和注释:

>>> txt = "Hello World"
>>> txt[::-1]
'dlroW olleH'
>>> txt[11::-1]
'dlroW olleH'
>>> txt[1000::-1]
'dlroW olleH'
>>> txt[1000:0:-1]  #右区间是不包括的,所以这是错的
'dlroW olle'
>>> 
>>> ''.join(reversed(txt)) #要么用reversed()来反转
'dlroW olleH'

可以看下python参考手册中的 python- 字符串