我怎样才能在 python 中同时 运行 两个发电机

How can I run two generators at same time in python

我想要两个生成器同时产生,但其中任何一个都可以“挂起”直到另一个生成器完成。

def cal(tap):
        while (tap!=0):
            tap = tap-1
            yield tap

我尝试用zip()来实现 但我得到了这个 作为初始

的 7 和 5
     6 4
     5 3
     4 2
     3 1
     2 0

我想实现这个:

     6 4
     5 3
     4 2
     3 1
     2 0
     1 0
     0 0

我该怎么做?我需要一些支持方法吗?

使用itertools.zip_longest:

from itertools import zip_longest

g = zip_longest(cal(7), cal(5), fillvalue=0)

list(g)

输出:

[(6, 4), (5, 3), (4, 2), (3, 1), (2, 0), (1, 0), (0, 0)]