参见英文答案 >
Understanding Python’s slice notation30个
a='0123456789' >>> a '0123456789' >>> a[1:-6:1] # working as expected '123' >>> a[2:-1:-1] # i was expecting '210' as answer based on start index=2 end index=0 ''
请帮助理解第二个切片操作符如何返回任何内容
解决方法@H_502_8@
始终通过从len(序列)中隐式减去转换开始和结束的负指数.所以[2:-1:-1]转换为[2:len(a)-1:-1]或[2:9:-1],其英文读作“从索引2开始,并向后退一个,直到你达到或低于指数9“.
由于从索引2开始,您已经处于或低于9,并且切片立即结束.
如果要从索引切换回字符串的开头,则省略结束索引(对于负片,这意味着将继续,直到“字符串开头”):
a[2::-1]
或明确地将其提供为None,这是省略停止最终使用隐式:
a[2:None:-1]
由于从索引2开始,您已经处于或低于9,并且切片立即结束.
如果要从索引切换回字符串的开头,则省略结束索引(对于负片,这意味着将继续,直到“字符串开头”):
a[2::-1]
或明确地将其提供为None,这是省略停止最终使用隐式:
a[2:None:-1]