如果我删除 Python 字典类中不存在的键,会发生什么情况?



假设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

相关内容

最新更新