Remove Multiple Keys from a Dictionary in Python

In Python, you can remove multiple keys from a dictionary using the following methods:

(1) Using pop() in a loop

You can iterate over the keys you want to remove and use the pop() method.

For example:

my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
keys_to_remove = ['a', 'c']

for key in keys_to_remove:
    my_dict.pop(key, None) # Avoids KeyError if key is missing

print(my_dict) # Output: {'b': 2, 'd': 4}

(2) Using the del statement in a loop

You can iterate over the keys you want to remove and use the del statement.

For example:

my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
keys_to_remove = ['a', 'c']

for key in keys_to_remove:
    if key in my_dict:
        del my_dict[key]

print(my_dict) # Output: {'b': 2, 'd': 4}

Always check if the key exists in the dictionary before deleting it to avoid keyError when the key is missing.

(3) Using dictionary comprehension

You can create a new dictionary excluding the keys you want to remove from the dictionary.

For example:

my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
keys_to_remove = ['a', 'c']

new_dict = {k: v for k, v in my_dict.items() if k not in keys_to_remove}
print(new_dict) # Output: {'b': 2, 'd': 4}

Which methods to use:

Use pop() method in a for loop if performance is a major concern.

Using del statement in a for loop is slightly slower than pop() method because you have to check for the existence of each key before deletion to avoid KeyError.

Use list comprehension if you need to create a new dictionary excluding specific keys.