Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby可枚举分区方法的Python模拟_Python_Ruby_Standard Library - Fatal编程技术网

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)

在这里:。这已经被问了很多次了。在这里:。这已经被问了很多次了。不需要复制和粘贴,我们可以关闭问题,因为它是完全重复的。不需要复制和粘贴,我们可以关闭问题,因为它是完全重复的