<p>This is really only easy to explain with an example, so to remove the intersection of a list from within a dict I usually do something like this:</p>

<pre><code>a = {1:'', 2:'', 3:'', 4:''}
exclusion = [3, 4, 5]

# have to build up a new list or the iteration breaks
toRemove = []
for var in a.iterkeys():
    if var in exclusion:
        toRemove.append(var)

for var in toRemove:
    del a[var]
</code></pre>

<p>This might seem like an unusual example, but it's surprising the number of times I've had to do something like this. Doing this with sets would be much nicer, but I clearly want to retain the 'values' for the dict.</p>

<p>This method is annoying because it requires two loops and an extra array. Is there a cleaner and more efficient way of doing this.</p>

Consider
dict.pop
:
```
```
for key in exclusion:
     a.pop(key, None)
```
```
The
```
None
```
keeps pop from raising an exception when
```
key
```
isn't a key.