Is it legitimate to delete items from a dictionary in Python while iterating over it?
For example:
for k, v in mydict.iteritems(): if k == val:
You could first build a list of keys to delete, and then iterate over that list deleting them.
dict = {'one' : 1, 'two' : 2, 'three' : 3, 'four' : 4} delete = [] for k,v in dict.items(): if v%2 == 1: delete.append(k) for i in delete: del dict[i]