Removing dictionary-keys not in a set?
Raymond Hettinger
vze4rx4y at verizon.net
Mon Apr 18 20:38:59 EDT 2005
[Klaus Alexander Seistrup]
> >>> d1 = {1:'a', 2:'b', 3:'c', 4:'d', 5:'e'}
> >>> s1 = set(d1)
> >>> s1
> set([1, 2, 3, 4, 5])
> >>> s2 = set([1, 3, 5])
> >>> s1-s2
> set([2, 4])
> >>> for k in s1-s2:
> ... del d1[k]
> ...
FWIW, if s2 is not already a set object, it need not be transformed before using
it. Instead, write:
for k in set(d1).difference([1,3,5]):
del d1[k]
If you prefer to work with dictionaries instead of sets, then adapt the existing
code for symmetric_difference_update() in sets.py.
Raymond Hettinger
More information about the Python-list
mailing list