排列组合N万多次时,如何处理循环执行?

遇到一个两万多次的循环脚本,发现单单循环执行起来就很麻烦,电脑cpu不够,后来找大神请教了一个方法,通过迭代器。边生成循环,边执行循环。

#!/usr/bin/env python3

l1 = range(500)
l2 = range(500)
l3 = range(500)


def generator():
    for i in l1:
        for j in l2:
            for k in l3:
                item = '{} ; {} ; {}'.format(i, j, k)
                yield item


def process(item):
    '''run process in device A'''
    print('do item: {}'.format(item))

def case_b():
    l = []
    for i in l1:
        for j in l2:
            for k in l3:
                l.append('{} ; {} ; {}'.format(i, j, k))

def case_a():
    for item in generator():
        process(item)


if __name__ == '__main__':
    case_a()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值