List splitting by predicate
<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>
