如何在Python列表中替换元素?代码实现求助
解决Python列表元素替换的问题
首先修正原代码里的小错误:
- 原代码中
guess = input("Guess a letter: ").lower缺少括号,应该写成guess = input("Guess a letter: ").lower(),否则guess会是一个方法对象而非输入的字母字符串。
要实现猜测字母匹配时替换display列表的对应下划线,核心是同时遍历目标单词的索引和字母,精准定位需要替换的位置。完整代码如下:
import random word_list = ["aardvark", "baboon", "camel"] chosen_word = random.choice(word_list) # 获取小写的猜测字母,修复lower()调用 guess = input("Guess a letter: ").lower() display = [] for letter in chosen_word: display.append("_") # 遍历单词的索引与对应字母 for index, letter in enumerate(chosen_word): if letter == guess: # 替换display对应位置的下划线 display[index] = letter print(display)
关键逻辑说明
用enumerate()函数可以同时拿到chosen_word中每个字母的索引和值,当字母与猜测的guess匹配时,直接修改display列表对应索引位置的元素即可。比如chosen_word是"aardvark"且猜测字母为"a"时,display中索引0、1、5的下划线会被替换成"a"。
内容的提问来源于stack exchange,提问作者V_omkar
相关产品推荐
相关产品推荐

