title: How to split a list based on a condition?
body: <p>What's the best way, both aesthetically and from a performance perspective, to split a list of items into multiple lists based on a conditional? The equivalent of:</p>
  <pre><code>good = [x for x in mylist if x in goodvals]
  bad  = [x for x in mylist if x not in goodvals]
  </code></pre>
  <p>Is there a more elegant way to do this?</p>
  <p>Here's the actual use case, to better explain what I'm trying to do:</p>
  <pre><code># files looks like: [ ('file1.jpg', 33L, '.jpg'), ('file2.avi', 999L, '.avi'), ... ]
  IMAGE_TYPES = ('.jpg','.jpeg','.gif','.bmp','.png')
  images = [f for f in files if f[2].lower() in IMAGE_TYPES]
  anims  = [f for f in files if f[2].lower() not in IMAGE_TYPES]
  </code></pre>