I have a dictionary with names as key and (age, Date of Birth) tuple as the value for those keys. E.g.
dict = {'Adam' : (10, '2002-08-13'),
'Eve' : (40, '1972-08-13')}
I want to delete all the keys which have age > 30 for their age in value tuple, how can I do that? I am accessing age of each key using dict[name][0]
where dict is my dictionary.
Python Dictionary clear() The clear() method removes all items from the dictionary.
The del keyword method uses the keyword from the dictionary to remove an item.
The usual way is to create a new dictionary containing only the items you want to keep:
new_data = {k: v for k, v in data.items() if v[0] <= 30}
If you need to change the original dictionary in place, you can use a for
-loop:
for k, v in list(data.items()): if v[0] > 30: del data[k]
Note that list(data.items())
creates a shallow copy of the items of the dictionary, i.e. a new list containing references to all keys and values, so it's safe to modify the original dict inside the loop.
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