I have a dictionary with character-integer key-value pair. I want to remove all those key value pairs where the value is 0.
For example:
>>> hand {'a': 0, 'i': 0, 'm': 1, 'l': 1, 'q': 0, 'u': 0} I want to reduce the same dictionary to this:
>>> hand {'m': 1, 'l': 1} Is there an easy way to do that?
Dictionary remove() Method in JavaThe remove() method of Dictionary Class accepts a key as a parameter and removes the corresponding value mapped to the key. Parameters: The function accepts a parameter key which denotes the key which is to be removed from the dictionary along with its mappings.
Removing elements from Dictionary We can remove a particular item in a dictionary by using the pop() method. This method removes an item with the provided key and returns the value . The popitem() method can be used to remove and return an arbitrary (key, value) item pair from the dictionary.
You can use a dict comprehension:
>>> { k:v for k, v in hand.items() if v } {'m': 1, 'l': 1} Or, in pre-2.7 Python, the dict constructor in combination with a generator expression:
>>> dict((k, v) for k, v in hand.iteritems() if v) {'m': 1, 'l': 1}
hand = {k: v for k, v in hand.iteritems() if v != 0} For Pre-Python 2.7:
hand = dict((k, v) for k, v in hand.iteritems() if v != 0) In both cases you're filtering out the keys whose values are 0, and assigning hand to the new dictionary.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With