How to Remove a Key from a Dictionary in Python

If you want to remove a key from a Python dictionary, the main tools are del and pop().

This page shows you:

  • How to remove one key from a dictionary
  • When to use del and when to use pop()
  • How to avoid KeyError if the key may not exist
  • What happens to the removed value

If you are new to dictionaries, see Python dictionaries explained.

Quick answer #

person = {"name": "Ana", "age": 25, "city": "Lima"}

# Remove a key and get its value
removed_value = person.pop("age")

print(person)
print(removed_value)

Output:

{'name': 'Ana', 'city': 'Lima'}
25

Use pop() when you want to remove a key and also get the removed value.

What this page helps you do #

  • Remove one key from a dictionary
  • Choose between del, pop(), and pop(key, default)
  • Avoid KeyError when the key may not exist
  • Understand what happens to the removed value

Use del when you only want to remove the key #

The del statement removes a key-value pair from a dictionary.

Use it when:

  • You only want to delete the key
  • You do not need the old value

Example:

person = {"name": "Ana", "age": 25, "city": "Lima"}

del person["age"]

print(person)

Output:

{'name': 'Ana', 'city': 'Lima'}

Important #

If the key does not exist, Python raises a KeyError.

person = {"name": "Ana", "city": "Lima"}

del person["age"]  # KeyError

If you often see this error, read how to fix KeyError when accessing dictionary values.

Use pop() when you want the removed value #

The pop(key) method removes the key and returns its value.

This is useful when you want to:

  • Save the value in a variable
  • Print the removed value
  • Use the value later in your code

Example:

person = {"name": "Ana", "age": 25, "city": "Lima"}

removed_age = person.pop("age")

print(person)
print(removed_age)

Output:

{'name': 'Ana', 'city': 'Lima'}
25

This is different from del:

  • del removes the key only
  • pop() removes the key and gives you the old value

To learn more, see the Python dictionary pop() method.

Important #

If the key does not exist, pop(key) also raises KeyError.

person = {"name": "Ana", "city": "Lima"}

person.pop("age")  # KeyError

Use pop(key, default) to avoid errors #

If you are not sure whether a key exists, use pop(key, default).

The second argument is a fallback value. Python returns it if the key is missing, instead of raising an error.

Example:

person = {"name": "Ana", "city": "Lima"}

removed_age = person.pop("age", "not found")

print(person)
print(removed_age)

Output:

{'name': 'Ana', 'city': 'Lima'}
not found

This is a safe option when:

  • The key may or may not exist
  • You want to avoid KeyError
  • You want simple code

You can also use None as the default:

person = {"name": "Ana", "city": "Lima"}

removed_age = person.pop("age", None)

print(removed_age)

Check before removing a key #

Another beginner-friendly option is to check first.

Use if key in my_dict before del or pop() when you want clear logic or want to run different code if the key is missing.

Example:

person = {"name": "Ana", "city": "Lima"}

if "age" in person:
    del person["age"]
else:
    print("The key was not found.")

print(person)

Output:

The key was not found.
{'name': 'Ana', 'city': 'Lima'}

This approach is useful when you want to:

  • Avoid errors
  • Show a message
  • Run other code if the key does not exist

If you need help with this check, see how to check if a key exists in a dictionary in Python.

Pick the right method #

Use the method that matches your situation:

  • Use del for simple removal
  • Use pop() to remove a key and return its value
  • Use pop(key, default) when the key may be missing

A quick comparison:

person = {"name": "Ana", "age": 25, "city": "Lima"}

# 1. Simple removal
del person["city"]

# 2. Remove and return value
age = person.pop("age")

# 3. Safe removal if key may be missing
country = person.pop("country", "not found")

print(person)
print(age)
print(country)

Output:

{'name': 'Ana'}
25
not found

Common mistakes #

Here are some common problems beginners run into.

Using del with a key that is not in the dictionary #

This causes a KeyError.

data = {"name": "Ana"}
del data["age"]  # KeyError

Using pop(key) without checking whether the key exists #

This also causes a KeyError.

data = {"name": "Ana"}
data.pop("age")  # KeyError

Confusing removing a key with setting its value to None #

These are not the same.

data = {"name": "Ana", "age": 25}

data["age"] = None

print(data)
print("age" in data)

Output:

{'name': 'Ana', 'age': None}
True

The key still exists. Only the value changed.

If you want to read values safely, see how to access values in a dictionary in Python.

Trying to remove multiple keys with code meant for one key #

Methods like del my_dict["key"] and my_dict.pop("key") remove one key at a time.

If you need to remove everything, use clear():

data = {"name": "Ana", "age": 25, "city": "Lima"}

data.clear()

print(data)

Output:

{}

See the Python dictionary clear() method.

FAQ #

How do I remove a key without getting an error? #

Use pop(key, default) or check with if key in my_dict first.

What is the difference between del and pop()? #

del removes the key only. pop() removes the key and returns its value.

Does setting a key to None remove it? #

No. The key still exists. Only its value changes to None.

How do I remove all keys from a dictionary? #

Use clear() to remove every key-value pair.

See also #

Press Esc to close