对于我的客户来说,迭代多个计数器正在变成一个重复的任务。
最直接的方式是:
cntr1 = range(0,2)
cntr2 = range(0,5)
cntr3 = range(0,7)
for li in cntr1:
for lj in cntr2:
for lk in cntr3:
print li, lj, lk
计数器的数量可以是3个以上,而嵌套的循环开始占用不动产。
有没有Pythonic方式做这样的事情?
for li, lj, lk in mysteryfunc(cntr1, cntr2, cntr3):
print li, lj, lk
我一直认为itertools中的某些东西符合这个法案,但我对itertools不太熟悉,无法理解这些选项。是否有像itertools这样的解决方案,还是我需要自己动手?
谢谢, Ĵ
答案 0 :(得分:7)
你想要的是itertools.product
for li, lj, lk in itertools.product(cntr1, cntr2, cntr3):
print li, lj, lk
将完全按照您的要求行事。该名称源于笛卡尔积的概念。