python - 当我使用 .insert() 函数时,为什么我的列表会变大?
问题描述
我正在尝试为家庭作业创建一个刽子手游戏,并且在将字母添加到正确的空格后,我一直在努力弄清楚为什么列表会混乱。
对于我的刽子手游戏,我有两个列表,一个包含需要猜测的单词,另一个包含玩家猜到的单词。我使用 for 循环来正确识别字母在“要猜测的单词”列表中的位置,并将它们放入“猜测”列表中。
当我这样做并在之后打印“猜测”列表时,列表会变得混乱。
我不是在寻找对我的代码进行大规模改进,因为我只是想学习基础知识(这是家庭作业),我只是想修复这个特定的错误。在完成这个作业之前我也从未使用过列表,所以我仍在学习如何使用它们哈哈。
谢谢!
finished = False
selected_word = input("Can player one input a word?")
selected_word_list = list(selected_word)
length_of_word = len(selected_word_list)
guessed_word = []
for x in range(0, length_of_word):
guessed_word.append('_')
while finished == False:
place_of_x = -1
guess = input("Please enter a letter: ")
if guess in selected_word_list:
print("Well done you have found a letter")
for x in selected_word_list:
place_of_x = place_of_x + 1
if x == guess:
guessed_word.insert(place_of_x,guess)
print(guessed_word)
我希望列表的长度仍然相同。例如,如果我输入“banana”并猜测“a”,则输出为:
['_', 'a', '_', 'a', '_', 'a', '_', '_', '_']
当我想要它时:
['_', 'a', '_', 'a', '_', 'a']
解决方案
你对做什么有误解insert
。insert
在第一个参数中给出的位置前面插入一个额外的新元素到列表中。
您似乎想要做的是更换一个项目。这可以通过简单的索引来完成:
guessed_word[place_of_x] = guess
推荐阅读
- visual-studio-code - 如何禁用 .eslintrc.js 中的 '{'.eslintobject-curly-spacing 后不应有空格
- html - 链接外部样式表
- visual-studio-code - 禁止 Prettier 在 VS Code 中格式化 HTML 文件中的内联 JS
- javascript - 尝试使用具有 webpack 的 React App 从 Web 浏览器将配置设置保存到用户计算机上的 JSON 文件?
- git - 如何从不同的分支 [git] 获取新文件?
- javascript - 如何随机删除这些绿点?
- flutter - 如何更新flutter web上的内容?
- visual-studio-code - 摆脱 vs 代码中烦人的矩形高光
- reporting-services - SSRS 多值参数计数表达式
- bash - 通过标志名称和值验证 bash 脚本参数