使用dict.pop() :
my_dict.pop('key', None)这将返回my_dict[key]如果key在字典中存在,并None其他。如果未指定所述第二参数(即my_dict.pop('key')和key不存在,一个KeyError上升。
特别回答 “有这样一种方式吗?”
if 'key' in myDict: del myDict['key']...... 好吧,你问 ;-)
但是,您应该考虑这种从dict中删除对象的方式不是原子的 - 在if语句中可能是'key'可能在myDict中,但是在del执行之前可能会被删除,在这种情况下del会失败并出现KeyError 。鉴于此, 使用dict.pop或类似的东西是最安全的
try:
del myDict['key']
except KeyError:
pass当然,这绝对不是一个单行。
我花了一些时间来弄清楚my_dict.pop("key", None)到底在做什么。所以我将这个作为一个答案,以节省其他人的谷歌搜索时间:
pop(key [,default])
如果 key 在字典中,则将其删除并返回其值,否则返回 default。如果未给出 default 并且 key 不在字典中,则引发 KeyError