python - 显示 IndexError 的列表理解
问题描述
我正在创建一个刽子手游戏。我想出了一个用字母代替下划线的想法。首先,用户输入他们的猜测(在本例中为字母“c”)。我搜索一个包含未知单词字母的列表,创建一个列表,其中包含每次命中该字母时的索引。然后我搜索下划线列表并使用我创建的索引列表将所有下划线替换为字母。但是,我收到一个错误:
IndexError:列表索引超出范围。
我在下面的代码中做错了什么?
y = "cctcc"
to_modify = ["_", "_", "_","_", "_"]
replacements = list(y)
user_input = input()
indexes = [i for i, j in enumerate(replacements) if j == user_input]
print(indexes)
for index in indexes:
to_modify[indexes[index]] = replacements[index]
print(to_modify)
输出:
[0, 1, 3, 4]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-25-be2b07a156e5> in <module>()
10 print(indexes)
11 for index in indexes:
---> 12 to_modify[indexes[index]] = replacements[index]
13
14 print(to_modify)
IndexError: list index out of range
解决方案
这部分代码已经在索引上循环:
for index in indexes:
to_modify[indexes[index]] = replacements[index]
如果indexes
contains [0,1,3,4]
,当index
循环到4
它试图访问indexes[4]
超出范围时,只需使用您从循环中获得的索引:
for index in indexes:
to_modify[index] = replacements[index]
推荐阅读
- keras - 如何让 Kera 使用超过 1 个核心?
- r - 缺少“FUN”,没有默认值
- excel - 如何编辑我的 VBA 宏以修复关于我的数据透视表创建的运行时错误“1004”?
- android - 如何将 App 特定权限添加到 Android DocumentProvider
- r - 是否可以在 Shiny 中创建平均可见的反应对象?
- rust - Rust:如何对组合的 dict/array 条目进行建模
- python - 代理传递子目录而不破坏绝对链接
- reporting-services - SSRS 报告 - 不同高度的页脚
- javascript - 使用 pdfmake 在 pdf 文件中显示数组元素
- java - 添加消息模式以记录有效负载