默默地从python dict中删除密钥

ozg*_*gur 35 python dictionary

我有一个python dict,我想静静地从我的字典中删除其中一个None''键,所以我想出了这样的东西:

try:
    del my_dict[None]
except KeyError:
    pass

try:
    del my_dict['']
except KeyError:
   pass
Run Code Online (Sandbox Code Playgroud)

如您所见,它的可读性较差,导致我编写重复的代码.所以我想知道python中是否有一个方法从dict中删除任何键而不抛出键错误?

Kei*_*ith 78

你可以这样做:

d.pop("", None)
d.pop(None, None)
Run Code Online (Sandbox Code Playgroud)

使用您忽略的默认值弹出字典.

  • 注意不要写d.pop(None)-因为没有提供默认值,这会引发KeyError。 (3认同)

Jon*_*nts 11

您可以使用该dict.pop方法并忽略结果:

for key in [None, '']:
    d.pop(key, None)
Run Code Online (Sandbox Code Playgroud)