title: Removing a subset of a dict from within a list
body: <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>