Python实现无限单词输入列表时空列表索引赋值报错如何解决
问题根因
- 初始创建的
option = []是空列表,option[i] = var的语法作用是修改列表中指定索引位置的已有元素,空列表不存在任何有效索引,运行时会直接抛出索引越界错误。 - 手动给列表预填固定长度占位值的写法只能支持固定数量的单词录入,既没法实现无限录入的需求,额外维护自增计数变量
i也属于完全多余的操作。 - 原代码里的字符串没有做原始字符串标记,反斜杠可能被Python识别为转义符,存在输入
\quit也无法正常退出的隐患。
修正后代码
直接用列表自带的append()方法追加元素即可,不需要提前分配列表长度,也不需要手动维护索引计数,天然支持无数量限制的单词录入:
option = [] input_content = "" # 字符串前加r标记为原始字符串,避免反斜杠被解析为转义符 exit_signal = r"\quit" while input_content != exit_signal: input_content = input(r"Insert one word or type '\quit' to exit: ") if input_content != exit_signal: option.append(input_content) print("已录入的单词列表:", option)
代码说明
list.append(元素)会自动把传入的新元素添加到列表末尾,不需要提前给列表设置固定长度,录入单词的数量没有上限。- 移除了无意义的自增索引变量,避免索引计数和列表实际长度不匹配导致的报错。
- 所有涉及
\quit的字符串都加了r前缀标记为原始字符串,保证反斜杠不会被转义,输入退出指令时可以正常触发逻辑。
内容的提问来源于stack exchange,提问作者Pint0
相关产品推荐
相关产品推荐

