假设buff是一本字典。我确实del buff[k]
,但k不是buff中的键。这是一个错误,还是你的python只是像什么都没发生一样传递行?
让我们测试一下:
>>> buff={1:2,4:5}
>>> del buff[1]
>>> del buff[6]
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
KeyError: 6
但在这种情况下,del
与它无关。使用[]
表示法访问字典中不存在的键会引起KeyError
请注意,最好使用buff.pop(k)
(在这种情况下,如果不存在,删除操作会触发KeyError
,结果相同(
要创建非崩溃/故障安全方法,只需执行以下操作:
if k in buff:
buff.pop(k)
或者(请求宽恕比许可更好(:
try:
buff.pop(k)
except KeyError:
pass