my_list = range(1,11)
print my_list[10:0:-1]
此代码打印 [10, 9, 8, 7, 6, 5, 4, 3, 2] 没有意义。为什么这样做?
my_list = range(1,11)
print my_list[10:0:-1]
此代码打印 [10, 9, 8, 7, 6, 5, 4, 3, 2] 没有意义。为什么这样做?
因为切片中的第二个元素是独占的。指数从 10 一直运行到 1,而不是直到 0。
要反转my_list
,只需省略开始和结束:
print my_list[::-1]
这只是符号的工作方式。正如@GregHewgill所说的那样:
要记住的关键点是 :end 值表示不在所选切片中的第一个值。因此,end 和 start 之间的区别在于所选元素的数量(如果 step 为 1,则为默认值)。
这将以相反的顺序选择所有元素,从索引 10 处的元素开始,直到索引 0 处的元素(但不包括该元素)。
另一种方法是将符号视为for
索引上传统循环的简写。在这种情况下:
for(int i=10; i>0; i-=1)