python的一个小问题

list1 = [0,1,2,3,4]

print(list1[2:-1])

结果是【2,3】

问题:我选取了【2:-1】,【-1】对应的最后一个数字是4,我以为结果是【2,3,4】。但是输出却是【2,3】,请问是什么原因呢?

print(list1[2:-1]) 切片都是左开右闭区间,表示右边的一个端点不包括在内

print(list1[2:]) 到最后就不要填,空的表示到最后包括最后一个元素

切片操作,从起始位置开始,但不包括结束位置

list1=[1,2,3,4]  
list1[0:2]

img

切片操作有三个参数
list[a:b:c]
从索引a开始,到b(不包括b),间隔c
其中,a的默认值是0,b的默认值是len(list),c的默认值是1
其中a,b,c都可以是负数,如果是负数,表示从后往前数,比如填写-1,那么其实等价于len(list)-1
而且a,b,c都可以越界,也不会报错
所以当你填写[:-1]时,其实是把最后一个元素排除了的