Python逆向步长切片。

10 浏览
0 Comments

Python逆向步长切片。

一个具体的例子是,"在这个例子中,我如何得到'3210'?"

>>> foo = '0123456'
>>> foo[0:4]
'0123'
>>> foo[::-1]
'6543210'
>>> foo[4:0:-1] # 我本来想得到'3210',但犯了一个错误,没关系,但是...
'4321'
>>> foo[3:-1:-1] # 我如何得到'3210'?
''
>>> foo[3:0:-1]
'321'

奇怪的是,我可以写foo[4:0:-1],foo[5:1:-1]等等,并得到我期望的结果,但却没有办法写出一个切片,使我得到'3210'。

一个临时的方法是foo[0:4][::-1],但这会创建两个字符串对象。我将进行数十亿次这样的操作,所以每个字符串操作都是昂贵的。

我一定是忽略了某些愚蠢而简单的东西。谢谢你的帮助!

0