What is the best way to remove an item from a dictionary by value, i.e. when the item\'s key is unknown? Here\'s a simple approach:
for key, item in some_di
a = {'name': 'your_name','class': 4}
if 'name' in a: del a['name']
I'd build a list of keys that need removing, then remove them. It's simple, efficient and avoids any problem about simultaneously iterating over and mutating the dict.
keys_to_remove = [key for key, value in some_dict.iteritems()
if value == value_to_remove]
for key in keys_to_remove:
del some_dict[key]
items()
returns a list, and it is that list you are iterating, so mutating the dict in the loop doesn't matter here. If you were using iteritems()
instead, mutating the dict in the loop would be problematic, and likewise for viewitems()
in Python 2.7.
I can't think of a better way to remove items from a dict by value.
y={'username':'admin','machine':['a','b','c']}
if 'c' in y['machine'] : del y['machine'][y['machine'].index('c')]