Proper way to remove keys in dictionary with None values in Python

Generally, you’ll create a new dict constructed from filtering the old one. dictionary comprehensions are great for this sort of thing:

{k: v for k, v in original.items() if v is not None}

If you must update the original dict, you can do it like this …

filtered = {k: v for k, v in original.items() if v is not None}
original.clear()
original.update(filtered)

This is probably the most “clean” way to remove them in-place that I can think of (it isn’t safe to modify a dict while you’re iterating over it)


Use original.iteritems() on python2.x

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)