一个回路中的几个发电机/返回一组发电机

时间:2017-11-07 20:17:48

标签: python tuples generator

我想生成两个带有一个循环的生成器,以提高计算效率。

我的代码正在运行模拟,其中对观察进行采样(计算成本高)并计算度量(计算成本高)。我对指标符合特定标准的结果感兴趣。

def simulate(N):
    for _ in range(0, N):               # where N is typically a large integer
        obs = sampleFromSpace()         # computationally intensive
        metric = computeMetric(obs)     # computationally intensive
        if(meets_criterion(metric)):     # note the constraint on metric to filter obs!
            yield (obs, metric)

此代码返回元组的生成器,但我想要的是obs的生成器和metric的生成器

有没有办法在不循环两次或将所有obs存储在列表中的情况下创建这两个迭代器?

目标:

obs_gen, metric_gen = simulate(1e9)

0 个答案:

没有答案