研究了一下
要先有start:stop是从 第start个开始~第stop的“前”1个结束 的观念 (step默认为1)
然后,只要是step为负时,倒过来数(从后面来数)
※ 引述《tsaiminghan (nahgnimiast)》之铭言:
: 请问在step为-1的情况下,取start:stop应该怎么看才对?
: aa=['a', 'b', 'c']
最后面全部(:),从后面数(step=-1)到最前面全部(:) (反转list)
: print (aa[::-1]) # ['c', 'b', 'a']
第1个开始,往前数(step=-1)到全部(:)(最前面)
: print (aa[1::-1]) # ['b', 'a']
第2个开始,往前数(step=-1)到全部(:)(最前面)
: print (aa[2::-1]) # ['c', 'b', 'a']
从最后面开始,往前数到第1个“前”结束
: print (aa[:1:-1]) # ['c']
如果有开始是负的也是一样想法
从第-1个('c')开始往前数到第1个('b')“前”(不包含第1个)
print (aa[-1:1:-1]) # ['c']
以上
参考文章
https://stackoverflow.com/questions/509211/understanding-slice-notation
https://mail.python.org/pipermail/tutor/2010-January/073864.html