python - 从 index() 获得多个回报
问题描述
我正在用 Python 开发一个刽子手游戏。我的“答案”列表按顺序包含单词的所有字母,“工作”列表以每个字母的破折号开始,然后用正确的字母填充。
使用 index() 时,它只返回值出现在列表中的最低位置。但是,我需要一种方法来返回值的所有实例(否则不会填充重复的字母)。
我是 Python 新手,所以我不确定某种循环是否最好,或者是否有不同的函数来获得我正在寻找的结果。我看过 enumerate() 但我不确定这在这种情况下如何工作。
if guess in word:
print("Correct!")
for i in range(count):
work[answer.index(guess)] = [guess]
print(work)
解决方案
正如您所提到的,问题是index
只返回字符串中第一次出现的字符。为了解决您的问题,您需要迭代answer
并获得等于 的字符的索引guess
,如下所示(使用enumerate):
guess = 'l'
word = "hello"
work = [""] * len(word)
answer = list(word)
if guess in word:
print("Correct!")
for i, c in enumerate(answer):
if c == guess:
work[i] = guess
print(work)
输出
Correct!
['', '', 'l', 'l', '']
请注意,这work
与您在评论中发表的内容略有不同。
更远:
推荐阅读
- sql - find views and stored procedures that reference specific field (MS SQL)
- java - 在菜单中重复 for 循环
- android - 如何检查滚动视图的可见百分比?
- android - 未调用 Android GcmListenerService onMessageReceived() 方法
- c - C逐行读取文件到动态数组失败但使用静态数组它可以工作吗?
- android - Recyclerview 不显示第一次项目
- elasticsearch - grok 解析数据的重复字段值
- java - SMBJ:如何打印特定子文件夹中的所有文件
- eclipse - 为我的 Xtext 项目执行“Eclipse 应用程序”运行配置时发出 SIGSEGV 信号
- python - 填写文本框并单击搜索按钮 - 使用 selenium 进行网络抓取