Ruby可枚举分区方法的Python模拟
可能重复:Ruby可枚举分区方法的Python模拟,python,ruby,standard-library,Python,Ruby,Standard Library,可能重复: python标准库中是否有内置函数或模块,它模拟Ruby中的Enumerable.partition行为,并根据传递的谓词函数对一个对象进行一次迭代,以获得两个列表/元组?不知羞耻地从中窃取-您可以使用itertools中的tee函数: from itertools import tee def split_on_condition(seq, condition): l1,l2 = tee((condition(item),item) for item in seq)
python标准库中是否有内置函数或模块,它模拟Ruby中的
Enumerable.partition
行为,并根据传递的谓词函数对一个对象进行一次迭代,以获得两个列表/元组?不知羞耻地从中窃取-您可以使用itertools
中的tee
函数:
from itertools import tee
def split_on_condition(seq, condition):
l1,l2 = tee((condition(item),item) for item in seq)
return (i for p, i in l1 if p), (i for p, i in l2 if not p)
不知羞耻地从中被盗-您可以使用itertools
中的tee
功能:
from itertools import tee
def split_on_condition(seq, condition):
l1,l2 = tee((condition(item),item) for item in seq)
return (i for p, i in l1 if p), (i for p, i in l2 if not p)
在这里:。这已经被问了很多次了。在这里:。这已经被问了很多次了。不需要复制和粘贴,我们可以关闭问题,因为它是完全重复的。不需要复制和粘贴,我们可以关闭问题,因为它是完全重复的