为何Python中这两个列表切片语句的输出结果不同?
Python列表切片结果差异的原因
Python里的列表切片遵循[起始索引:结束索引:步长]的规则,核心要点是结束索引是「排他」的——切片会包含起始索引对应的元素,但只会取到结束索引之前的元素,不会包含结束索引本身的元素。
结合你的例子具体分析:
- 原列表
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]的索引从0开始计数,元素10对应的索引是9。 - 语句
list1 = my_list[1:9:2]:起始索引为1(对应元素2),结束索引为9(对应元素10),步长为2。因为结束索引是排他的,切片只会取索引小于9的元素,也就是索引1、3、5、7对应的2, 4, 6, 8,自然不会包含索引9的10。 - 语句
list2 = my_list[1::2]:这里省略了结束索引,Python会默认切片到列表的最后一个元素(包含最后一个),所以会取索引1、3、5、7、9对应的2, 4, 6, 8, 10。
内容的提问来源于stack exchange,提问作者essesoul
相关产品推荐
相关产品推荐

