我有一个python dict,我想静静地从我的字典中删除None
和''
键,所以我想出了类似的东西:
try:
del my_dict[None]
except KeyError:
pass
try:
del my_dict['']
except KeyError:
pass
如您所见,它的可读性较差,导致我编写重复的代码。所以我想知道python中是否有一个方法从dict中删除任何键而不抛出键错误?
答案 0 :(得分:70)
你可以这样做:
d.pop("", None)
d.pop(None, None)
使用您忽略的默认值弹出字典。
答案 1 :(得分:10)
您可以使用dict.pop
方法并忽略结果:
for key in [None, '']:
d.pop(key, None)
答案 2 :(得分:3)
您可以尝试:
d = dict((k, v) for k,v in d.items() if k is not None and k != '')
或删除所有类似空的键
d = dict((k, v) for k,v in d.items() if k )
答案 3 :(得分:1)
以下将删除密钥(如果存在),并且不会抛出错误:
for d in [None, '']:
if d in my_dict:
del my_dict[d]