我问题的一个具体例子是,“在这个例子中,我如何得到'3210'
>>> foo = '0123456'
>>> foo[0:4]
'0123'
>>> foo[::-1]
'6543210'
>>> foo[4:0:-1] # I was shooting for '3210' but made a fencepost error, that's fine, but...
'4321'
>>> foo[3:-1:-1] # How can I get '3210'?
''
>>> foo[3:0:-1]
'321'
我能写出foo[4:0:-1]、foo[5:1:-1]等,并得到我所期望的结果,这似乎很奇怪,但没有办法写出切片,这样我就能得到“3210”。
这样做的一种临时方法是foo[0:4][::-1],但这会在进程中创建两个字符串对象。我将执行这个操作几十亿次,所以每个字符串操作都很昂贵。
我一定错过了一些愚蠢而容易的事情。谢谢你的帮助!
如果您正在寻找比扩展切片表示法更具可读性的内容:
只需排除结束范围索引。。。
讽刺的是,关于唯一的选择我认为你没有尝试。
在切片符号中省略结束索引:
如果必须多次执行此操作,请创建一个可反复使用的切片对象
相关问题 更多 >
编程相关推荐