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

如何在字符串每个字符前添加对应短语?解决IndexError问题

解决列表赋值索引越界问题并实现字符前加对应短语的需求

问题场景

需要给输入字符串(如"ABCD")的每个字符前依次添加对应短语(如("0", "1", "2", "3")),最终得到结果"0A1B2C3D"。你编写的代码运行时抛出IndexError: list assignment index out of range错误,以下是问题分析和解决方法:

错误原因

你的代码存在两个核心问题:

  1. 循环内重复初始化空列表:每次循环都执行combined = [],导致列表始终是空的,此时直接通过combined[i]赋值会因为列表没有对应索引而报错。
  2. 非法使用return:return只能在函数内部使用,全局代码中用它会触发语法错误。

修正后的代码

基础修正版本

text = input()
if len(text) > 4:
    print("输入字符串长度不能超过4")
    exit()
phrases = ["0", "1", "2", "3"]
combined = []
for i in range(len(text)):
    combined.append(phrases[i] + text[i])
# 将列表拼接为最终字符串
result = ''.join(combined)
print(result)

更简洁的优化版本

利用zip函数同时遍历短语和字符串字符,代码更简洁高效:

text = input()
if len(text) > 4:
    print("输入字符串长度不能超过4")
    exit()
phrases = ["0", "1", "2", "3"]
result = ''.join(p + c for p, c in zip(phrases, text))
print(result)

关键修正点说明

  • 将combined = []移到循环外部,确保列表可以持续累积元素。
  • 使用append()方法向列表添加元素,避免直接给未初始化的索引赋值。
  • 用exit()替代return处理输入过长的情况,符合全局代码的语法规则。
  • 用列表替代字典存储短语,因为索引和值是顺序对应关系,列表访问更直接高效。
  • zip函数可以将两个可迭代对象的元素一一配对,简化遍历逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:01:01