You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python切片操作符stop参数困惑:为何lst[0:4]结果不符预期

理解Python切片的stop参数

Python的切片操作符[start:stop:step]遵循左闭右开的规则——切片会包含start索引对应的元素,但不包含stop索引对应的元素。

以你的代码为例:

lst = [1,2,3,4,5]
print(lst[0:4])

列表lst的索引对应关系是:

  • 索引0 → 1
  • 索引1 → 2
  • 索引2 → 3
  • 索引3 → 4
  • 索引4 → 5

切片[0:4]的意思是:从索引0开始取,一直取到索引4的前一个位置,也就是索引3为止。所以最终得到的是[1,2,3,4],而不会包含索引4对应的元素5。

这种设计有几个实用的好处:

  • 切片的长度可以直接用stop - start计算,比如0:4的长度是4,和结果的元素数量完全匹配
  • 方便拆分列表,比如lst[0:4]和lst[4:5]刚好能把原列表分成不重叠、无遗漏的两部分
  • 当需要取到列表末尾时,可以省略stop参数,直接写lst[0:]或者lst[:],不需要手动计算列表长度

如果想包含索引4对应的元素5,你可以把stop设为5,或者直接省略stop:

print(lst[0:5])  # 输出 [1,2,3,4,5]
print(lst[:])    # 输出 [1,2,3,4,5]

内容的提问来源于stack exchange,提问作者Graz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 23:18:30