python双重循环中使用yield

为了避免使用中间介质,想要用这个yield.
这是一个难倒无数大佬的问题!!!
双重循环中使用yield
请教n多大佬,最终经过两天时间,终于有个大佬给想出来了。

c = 0
def generator():
    global c
    while 1:
        c += 1
        yield c

def get_num():
    gen = generator()
    for i in range(9):
        yield next(gen)

def main():
    for i in range(5):
        for j in get_num():
            print(j)

if __name__ == '__main__':
    main()

最终成功打印1…45

外面的循环通过next迭代,遇到yield返回, ,下次next继续while循环,如果不加while,下次由于上次generator()已经执行完毕不会再继续执行产生迭代器,所以next没有可迭代的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值