Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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 itertools:创建二维迭代器_Python_Itertools - Fatal编程技术网

Python itertools:创建二维迭代器

Python itertools:创建二维迭代器,python,itertools,Python,Itertools,我正在尝试使用itertools使这段代码性能更好,更具Python风格 def get_permutations(): out = [] for a in range(0,6): for b in range(0, 6): for c in range(0, 6): for d in range(0, 6): for e in range(0, 6): for f in ra

我正在尝试使用itertools使这段代码性能更好,更具Python风格

def get_permutations():
out = []
for a in range(0,6):
    for b in range(0, 6):
        for c in range(0, 6):
            for d in range(0, 6):
                for e in range(0, 6):
                    for f in range(0, 6):
                        out.append([a,b,c,d,e,f])
return out

我想我应该使用itertools.permutations和itertools.chain,但我不确定如何将它们组合在一起,以获得与列表或迭代器等效的结果。如果你有另一个不使用迭代工具的解决方案,我也会考虑它。

你不是在寻找<代码>迭代器吗?p> 这不就是
itertools.product(范围(6),repeat=6)
?正如jonsharpe提到的,这些不是排列,而是笛卡尔积。使用
itertools.product
可能会加快速度,但不会改变算法的复杂性(这在这里非常可怕)。@StefanPochmann假设
range(6)
是可变的。如果没有,那么使用
itertools.product
或者仅仅使用这些嵌套循环根本不会产生明显的差异。把它贴出来作为答案,这样我就可以接受了。胡安帕,是的,我承认表演相当可怕。