Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:嵌套计数器_Python_Iteration - Fatal编程技术网

Python:嵌套计数器

Python:嵌套计数器,python,iteration,Python,Iteration,对我的客户来说,在多个计数器之间进行迭代正在变成一项重复性任务 最直接的方法是这样: 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到3之间的任意位置,嵌套的for循环开始占用不动产 有没有一种类似蟒蛇的方式来做这样的事情

对我的客户来说,在多个计数器之间进行迭代正在变成一项重复性任务

最直接的方法是这样:

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到3之间的任意位置,嵌套的for循环开始占用不动产

有没有一种类似蟒蛇的方式来做这样的事情

for li, lj, lk in mysteryfunc(cntr1, cntr2, cntr3):
    print li, lj, lk
我一直认为itertools中的某些东西符合这一要求,但我对itertools还不够熟悉,无法理解这些选项。是否已经有了像itertools这样的解决方案,或者我需要自己开发

谢谢,
j

您想要的是
itertools.product

for li, lj, lk in itertools.product(cntr1, cntr2, cntr3):
    print li, lj, lk

我会按照你的要求去做。该名称源自笛卡尔积的概念

好极了。谢谢你,温斯顿。另外(万一有人遇到了稍微不同的问题):假设你有一个数组
cntr=[cntr1,cntr2,cntr3]
。然后调用
itertools.product(cntr)
将无法工作。(它只打印第一个元素是
cntr
元素的所有1元组;实际上它打印
cntr
)相反,您可以执行
itertools.product(*cntr)