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

Python中字符串切片[-2:]与[2:]的区别是什么?

理解Python切片中[-2:]和[2:]的区别

嘿,咱们来拆解一下你遇到的问题,为啥用str[2:]会失败,而str[-2:]能完美解决需求~

首先得回忆下Python里字符串索引的两种核心方式:

  • 正数索引:从左往右数,第一个字符对应索引0,第二个是1,以此类推。
  • 负数索引:从右往左数,最后一个字符对应索引-1,倒数第二个是-2,依此类推。

接下来逐个分析这两个切片的具体作用:

1. str[2:]的实际效果

这个切片的逻辑是:从字符串的第3个字符(索引为2的位置)开始,一直截取到字符串末尾。
举几个直观的例子:

  • 如果输入是"Python",str[2:]会得到"thon"
  • 如果输入是"Hi"(刚好是需求要求的最小长度2),索引2已经超出了字符串的有效索引范围(有效索引只有0和1),所以str[2:]会返回空字符串"",这时候你的函数返回""*3还是空字符串,完全不符合需求,这就是测试用例失败的核心原因!

2. str[-2:]的实际效果

这个切片的逻辑是:从字符串的倒数第2个字符开始,截取到字符串末尾。
不管输入的字符串长度是2还是更长,它都能精准拿到最后两个字符:

  • 如果输入是"Python",str[-2:]会得到"on"
  • 如果输入是"Hi",str[-2:]会得到"Hi"
  • 如果输入是"HelloWorld",str[-2:]会得到"ld"

这样一来,用str[-2:]*3就能正确生成由最后2个字符重复3次的新字符串,自然能通过所有测试用例啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:47:28