所以我在 Codehs 中做一个问题,并且我遇到了其中一个问题的错误。我不太擅长编程,但我无法弄清楚我做错了什么。我每次都会收到 KeyError: 2 错误,并且我已经调试了一段时间。该代码接受用户输入的字符串,并打印字符串中每个单词的使用次数,并将金额及其相应的单词作为键放入字典中。当我输入“hello hello”时,出现 KeyError: 2 错误。代码应位于此消息下方。任何和所有帮助都会帮助我,所以谢谢!
my_dict = {}
string = input("Enter a string: ")
string = string.split()
for value, item in enumerate(string):
if string[value] in my_dict:
my_dict.update({value : my_dict[value+1]})
else:
my_dict[item] = 1
print(my_dict)
我尝试了很多方法,例如调试和使用打印,但没有成功。
我相信第 6 行是您的问题,您正在尝试更新字典以显示字符串已出现多次。尝试将其更改为这样:
my_dict[item] += 1
这将获取字典中某个项目的现有编号并加 1。
在更新字典时,您混淆了要更新的键及其值。以下内容应该可以修复它(替换问题代码中的相应行):
if string[value] in my_dict:
my_dict.update({item : my_dict[item]+1})
但是,这没有必要的复杂,因为您可以直接更新字典条目,如下所示
if string[value] in my_dict:
my_dict[item] += 1