pythondictionary

Removing multiple keys from a dictionary safely


I know how to remove an entry, 'key' from my dictionary d, safely. You do:

if d.has_key('key'):
    del d['key']

However, I need to remove multiple entries from a dictionary safely. I was thinking of defining the entries in a tuple as I will need to do this more than once.

entities_to_remove = ('a', 'b', 'c')
for x in entities_to_remove:
    if x in d:
        del d[x]

However, I was wondering if there is a smarter way to do this?


Solution

  • Why not like this:

    entries = ('a', 'b', 'c')
    the_dict = {'b': 'foo'}
    
    def entries_to_remove(entries, the_dict):
        for key in entries:
            if key in the_dict:
                del the_dict[key]
    

    A more compact version was provided by mattbornski using dict.pop()