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

Python字符串切片实现反转:为何修改结束索引为-1无输出?

Python字符串切片反转的问题解析

首先得明确Python切片的核心规则:切片格式为[start:end:step],当step为负数时,切片从start位置开始向左遍历,直到到达但不包含end位置;且只有当start位置在end位置的右侧时,切片才会有效取值,否则结果为空。

第一个代码的输出原因

你最初的代码:

string = "abcdef" 
print(string[len(string) - 1: 0: -1])

这里len(string)-1对应索引5(字符f),end设为0,步长-1。因为切片不会包含end位置的字符,遍历会停在索引1的位置,最终取到索引5、4、3、2、1对应的字符fedcb,自然缺失了索引0的a。

第二个代码输出为空的原因

修改为end=-1后的代码:

string = "abcdef" 
print(string[len(string) - 1: -1: -1])

在Python中,索引-1等价于字符串最后一个字符的位置(也就是索引5)。此时start和end指向同一个位置,步长为负时要求start必须在end右侧才会触发遍历,两者位置相同的情况下,没有任何字符会被选中,所以输出为空。

正确的字符串反转写法

如果要实现完整反转,有两种简洁方式:

  • 省略end参数,让切片自动遍历到字符串开头:
    string = "abcdef" 
    print(string[len(string)-1::-1])
    
  • 直接使用最简切片写法:
    string = "abcdef" 
    print(string[::-1])
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:01:15