如何从Python字典中删除密钥?

2022-09-05 00:46:59

有没有一种单行方法可以从字典中删除键而不引发?KeyError

if 'key' in my_dict:
    del my_dict['key']

答案 1

要删除某个键而不考虑它是否在字典中,请使用 dict.pop() 的双参数形式:

my_dict.pop('key', None)

如果字典中存在,则返回,否则将返回。如果第二个参数未指定(即 )且不存在,则引发 a。my_dict[key]keyNonemy_dict.pop('key')keyKeyError

要删除保证存在的密钥,您还可以使用:

del my_dict['key']

如果密钥不在字典中,这将引发 。KeyError


答案 2

具体要回答“有没有一种单线方法可以做到这一点?

if 'key' in my_dict: del my_dict['key']

...好吧,你 ;-)

但是,您应该考虑,从 中删除对象的这种方式不是原子的 - 它可能在语句期间,但可能在执行之前被删除,在这种情况下,将失败,并带有 .鉴于此,使用dict.pop或类似的东西是最安全的dict'key'my_dictifdeldelKeyError

try:
    del my_dict['key']
except KeyError:
    pass

当然,这绝对不是一句话。