【发布时间】:2011-08-13 11:28:21
【问题描述】:
我的问题的一个具体例子是,“在这个例子中我怎样才能得到'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],但这会在此过程中创建两个字符串对象。我将执行这个操作数十亿次,所以每个字符串操作都很昂贵。
我一定错过了一些愚蠢而简单的事情。感谢您的帮助!
【问题讨论】: