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

打印字符串相邻字符时触发Index out of range错误的技术求助

问题与解决

问题背景

给定字符串:

stg = 'AVBFGHJ'

需要输出相邻字符对,最后一个字符搭配None,预期输出:

AV

VB

BF

FG

GH

HJ

J None

尝试以下代码时触发Index out of range错误:

for i in range(len(stg)):
    print(stg[i],stg[i+1])

错误原因

字符串索引从0开始,长度为n的字符串最大索引是n-1。当循环到i = len(stg)-1(即最后一个字符的索引)时,i+1超出了字符串的索引范围,因此抛出索引越界错误。

解决方案

方法1:拆分循环与收尾处理

先遍历到倒数第二个字符,输出相邻对,最后单独处理最后一个字符:

stg = 'AVBFGHJ'
# 遍历前len(stg)-1个字符,输出相邻对
for i in range(len(stg)-1):
    print(stg[i], stg[i+1])
    print()  # 打印空行分隔
# 处理最后一个字符与None的配对
print(stg[-1], None)

方法2:用zip函数批量配对

通过切片将原字符串与「原字符串从第二个字符开始 + [None]」配对,一次性遍历所有组合:

stg = 'AVBFGHJ'
# 生成配对:原字符串每个字符 对应 下一个字符/None
pairs = zip(stg, stg[1:] + [None])
for idx, (char, next_char) in enumerate(pairs):
    print(char, next_char)
    # 最后一对后不打印空行
    if idx != len(stg)-1:
        print()

两种方法都能得到符合预期的输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 11:45:31