为什么只能得到整个切片反向列表省略开始和结束?

时间:2014-05-03 15:19:02

标签: python list slice python-2.x

为什么一个消极步骤(或步幅)的切片列表无法获得整个列表?

>>> my_list = range(1,11)
>>> reverse_list = my_list[10:0:-1]
>>> reverse_list
[10, 9, 8, 7, 6, 5, 4, 3, 2]
>>> reverse_list = my_list[11:0:-1]
>>> reverse_list
[10, 9, 8, 7, 6, 5, 4, 3, 2]
>>> reverse_list = my_list[11:-1:-1]
>>> reverse_list
[]
>>> 

但是,如果省略startend,它就可以了!

>>> reverse_list = my_list[::-1]
>>> reverse_list
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

1 个答案:

答案 0 :(得分:3)

因为未包含结束索引0

正如你所说,更好的方法是:

>>> my_list[10::-1]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

或者您可以使用None(如@MartijnPieters建议的那样):

>>> my_list[10:None:-1]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]