列表理解对于过滤列表非常有用。是否有一种很好的方法可以获得另一半,单次传递中的滤除部分?例如;以此示例列表:
>>> a = [5, 10, 45, 99]
以下操作从该列表中选择一些值:
>>> b = [x for x in a if somecondition(x)]
>>> b
>>> [10, 45]
但话又说回来,我还需要另一半,所以我寻求的是:
>>> (b, c) = divideintotwo(x, somecondition)
>>> b
>>> [10, 45]
>>> c
>>> [5, 99]
我可以自己写这个功能。虽然,我宁愿使用存在的那个,如果存在的话。当Python内置几乎所有东西时,似乎有点太基本了,没有一个。