Sentry Answers>Python>

Delete element from a dictionary in Python

Delete element from a dictionary in Python

David Y.

The Problem

How do I delete an element from a dictionary in Python?

The Solution

To delete an element from a dictionary, we can use the del keyword. For example:

Click to Copy
products = {"apples": 1, "oranges": 3, "pears": 2} print(products) # will print the dictionary defined above del products["oranges"] print(products) # will print { "apples": 1, "pears": 2 }

We can also do this with the dict.pop method. The main difference between this and del is that dict.pop will return the value of the removed dictionary element.

Click to Copy
products = {"apples": 1, "oranges": 3, "pears": 2} print(products) # will print the dictionary defined above print(products.pop("oranges")) # will print 3 print(products) # will print { "apples": 1, "pears": 2 }

Both of these methods will mutate the existing dictionary. If we instead want to create a copy of the dictionary with one element removed, we must first make a copy:

Click to Copy
products = {"apples": 1, "oranges": 3, "pears": 2} print(products) # will print the dictionary defined above products_copy = dict(products) del products_copy["oranges"] print(products) # will print the dictionary defined above print(products_copy) # will print { "apples": 1, "pears": 2 }

Note that this will only make a shallow copy of the dictionary. For simple dictionaries like the one in the example, this is sufficient. However, if our dictionary contains lists, dictionaries, or custom class instances, copying it in this way will not make copies of those inner objects. Instead, our copy will contain references to the objects inside the original dictionary. To avoid this and create a deep copy of our dictionary, we need to use the deepcopy() function from Python’s built-in copy module.

Click to Copy
import copy products = {"apples": [1, 2, 3], "oranges": [3, 2, 1], "pears": [2, 1, 3]} print(products) # will print the dictionary defined above products_copy = copy.deepcopy(products) del products_copy["oranges"] print(products) # will print the dictionary defined above print(products_copy) # will print { "apples": [1, 2, 3], "pears": [2, 1, 3] }
  • Sentry BlogPython Performance Testing: A Comprehensive Guide
  • Syntax.fmListen to the Syntax Podcast
  • Sentry BlogLogging in Python: A Developer’s Guide
  • Syntax.fm logo
    Listen to the Syntax Podcast

    Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.

    SEE EPISODES

Considered “not bad” by 4 million developers and more than 100,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

© 2024 • Sentry is a registered Trademark
of Functional Software, Inc.