为什么一个消极步骤(或步幅)的切片列表无法获得整个列表?
>>> 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
[]
>>>
但是,如果省略start
和end
,它就可以了!
>>> reverse_list = my_list[::-1]
>>> reverse_list
[10, 9, 8, 7, 6, 5, 4, 3, 2, 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]