title: List splitting by predicate
body: <p>Is there a more concise way to split a list into two lists by a predicate?</p>
  
  <pre><code>errors, okays = [], []
  for r in results:
      if success_condition(r):
          okays.append(r)
      else:
          errors.append(r)
  </code></pre>
  
  <p>I understand that this can be turned into an ugly one-liner using <code>reduce</code>; this is not what I'm looking for.</p>
  
  <p><em>Update:</em> calculating <code>success_condition</code> only once per element is desirable.</p>