我正在使用itertools.combinations
获取1M个数字的两个数字/组合([(1,2),(1,3)......])的所有可能元组,即来自[1,2,3] ,4,.....,1000000]。我可以生成所有组合但是有一种方法可以获得一个只返回请求组合的生成器。例如我想要第一个10K组合,我可以得到这个像
combinations = itertools.combinations(numbers, 2)
chunk = list(combinations)[:10000]
但是这段代码会将所有组合加载到内存中,这是一个非常糟糕的主意。我想要一个能够返回第一个10K组合而不将所有组合加载到内存中的生成器。像这样
combinations = itertools.combinations(numbers, 2)
chunk1_generator = some_magic(combinations, 0, 9999)
以类似的方式,
chunk2_generator = some_magic(combinations, 10000, 19999)
非常感谢您的帮助。