Python切片问题:仅返回单个值,求原因及原理解析
问题原因与切片原理解析
你的代码里a_list[1:2]之所以只返回[2],核心是没搞懂Python切片左闭右开的规则:
- Python列表的索引从0开始,
a_list里的元素对应索引:1→0,2→1,3→2 - 切片语法
list[start:end]的意思是:取从start索引开始(包含该位置元素),到end索引结束(不包含该位置元素)的所有元素
你写的1:2,就是取索引1的元素(也就是2),但因为end是2,不包含索引2的元素,所以结果只有[2]。
如果要获取前两个元素,正确的写法有两种:
- 明确指定起始和结束:
a_list[0:2]——从索引0开始,到索引2结束(不包含),也就是取索引0和1的元素:[1,2] - 省略起始索引(默认从0开始):
a_list[:2]——效果和上面完全一样,更简洁
再补充几个切片的常见用法帮你理解:
a_list[1:]:从索引1开始取到末尾,结果是[2,3]a_list[:-1]:取到倒数第二个元素,结果是[1,2]a_list[::2]:步长为2,取索引0、2的元素,结果是[1,3]
内容的提问来源于stack exchange,提问作者Fozle Rabbi
相关产品推荐
相关产品推荐

