【发布时间】:2012-08-15 18:31:21
【问题描述】:
有没有更简洁的方法通过谓词将一个列表分成两个列表?
errors, okays = [], []
for r in results:
if success_condition(r):
okays.append(r)
else:
errors.append(r)
我知道这可以使用reduce 变成一个丑陋的单线;这不是我要找的。p>
更新:每个元素只计算一次 success_condition 是可取的。
【问题讨论】:
-
你的代码没问题。所有提出的解决方案都是循环并应用过滤功能两次。
-
@PaoloMoretti:我同意你的第一句话,但你的第二句话是错误的——参见 dbaupp 的。
-
@PaoloMoretti,以及 dfb 的第二个建议。
-
我也同意@PaoloMoretti 的第一句话,这是代码很好。这些解决方案没有你的优势
标签: python