3
考虑下面的代码段重构几个嵌套for循环的条件
for a in generator1():
if test(a):
for b in generator2():
if test(a, b):
for c in generator3():
if test(a, b, c):
print "Found {} {} {}".format(a, b, c)
使用test
之前每个循环是必要的,因为发电机可以产生大量的值(10^6-10^8)。我不想做昂贵的计算,当清楚由于价值a
或b
整个三倍将不能通过测试。
这段代码可以简化吗?如果我想添加更多的内部循环(五个测试四)?
使用列表。例如:'generators = [generator1,generator2]';并用列表调用测试:'args = [a] test(args)... args + = [b] test(args)' – nikniknik2016
@ nikniknik2016请您详细说明一下吗? –
我可能会把它写成递归生成器 –