如果我删除Python Dictionary Class中不存在的键会发生什么?

时间:2018-05-22 14:16:40

标签: python python-3.x dictionary

让我们说buff是一本字典。我做del buff[k],但k不是buff的关键。这是一个错误,或者你的python只是通过线条没有发生任何事情?

1 个答案:

答案 0 :(得分:3)

让我们测试一下:

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