我有一个对象,我想找到的值是None
。
下一步我想删除密钥。
我这样试试:
>>> obj = {'a': '1', 'b': '2', 'c': '3', 'd': None, 'e': '4', 'f': None }
>>> keys = list(obj.keys())
>>> for key in keys:
... if obj[key] == None:
... obj.pop(key, None)
>>> obj
{'a': '1', 'b': '2', 'c': '3', 'e': '4'}
有更好的方法吗?
答案 0 :(得分:6)
你可以使用词典理解:
obj = {k: v for k, v in obj.items() if v is not None}
如果您不想替换字典批发(因为您可能还有其他参考资料),那么您的方法是合理的,但仍然可以通过避免调用.keys()
来提高效率。 ,并使用del
代替dict.pop()
:
for key in list(obj):
if obj[key] is None:
del obj[key]
应始终使用None
对is
进行测试;它是一个单身对象。