当我为[key]使用常量(其值与变量相同)时,我没有得到KeyError。
例如:
self._answer= input("Which appointment would you like to delete?")
self._useless= self._book.pop(self._answer)
当self._answer = 1001时出现关键错误:
self._useless= self._book.pop(1001)
按需运作。我有什么想法可以解决这个问题吗?
编辑:正如下面建议的@ user2357112,以下代码段有效:def deleteAppointment(self):
self._answer= int(input("Which appointment would you like to delete?"))
del self._book[self._answer]
然而,在重做整个项目后,我不再遇到上面的问题(即使用[dictionary] .pop([key])不再产生KeyError)。 因此,如果您收到此错误,则代码中可能存在错误。
答案 0 :(得分:2)
input
返回一个字符串,'1001' != 1001
。如果您的键是int 1001
,则需要将输入转换为int:
self._answer= int(input("Which appointment would you like to delete?"))
另外,名称self._useless
表示您可能不关心pop
操作的结果。如果您只想从dict中删除条目,可以使用del
:
del self._book[self._answer]
或者您可以忽略pop
的返回值,而不是将其分配给任何内容:
self._book.pop(self._answer)