我已经看到::-1
可以将其用于反转字符串,但是我认为找到i:j:k
能够完成此工作的显式整数会很有趣。
我找到了文档common-sequence-operations,但无法使其正常工作。此代码测试很简短:
s = "abcd"
print(1,s[4:3:-1])
print(2,s[4:2:-1])
print(3,s[4:1:-1])
print(4,s[4:0:-1])
print(5,s[4:-1:-1])
这是输出:
1
2 d
3 dc
4 dcb
5
看来您无法使用显式公式来执行此操作s[i:j:k]
。
通常我可以通过试错法弄清楚简单的编程,但这在这里不起作用。也许仔细阅读文档可以帮助我解决这个问题!
您必须这样做:
s = "abcd"
print(s[len(s):-len(s)-1:-1])
或者,正如Terry Jan Reedy在评论中指出的那样,以下编写方式很好地说明了切片的长度(stop - start) / step
:
print(s[-1:-1-len(s):-1])
问题在于,负索引从背面开始,因此负索引对应于以下“真实”索引:
-1 -> 3
-2 -> 2
-3 -> 1
-4 -> 0 # -len(s)
-5 -> -1 # that's the one you need (or any smaller number)
0
还是-len(s)
不够,因为stop
切片的索引是互斥的,所以您必须降低一个。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句