Python列表切片访问异常:为何切片结果不符合预期?
Python列表切片操作错误分析与解决
问题场景
执行Python列表切片时得到不符合预期的结果,代码如下:
>>> a=[2,3,4,5,6,7,8,9] >>> print(a) [2, 3, 4, 5, 6, 7, 8, 9] >>> print(a[0:2]) [2, 3] >>> print(a[2:2]) []
预期输出:[4,5]
错误原因
Python列表切片遵循左闭右开规则:列表[起始索引:结束索引]会包含起始索引对应的元素,但不包含结束索引对应的元素。
- 当你使用
a[2:2]时,起始索引和结束索引完全相同,没有元素能落在这个区间内,因此返回空列表。 - 目标元素
4和5对应的索引分别是2和3,所以需要将结束索引设为4,这样切片会包含索引2、3的元素。
解决方法
调整切片的结束索引后,得到预期结果:
>>> a=[2,3,4,5,6,7,8,9] >>> print(a) [2, 3, 4, 5, 6, 7, 8, 9] >>> print(a[0:2]) [2, 3] >>> print(a[2:4]) [4, 5]
真是新手失误!
内容的提问来源于stack exchange,提问作者Danny
相关产品推荐
相关产品推荐

