Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_For Loop - Fatal编程技术网

Python 多回路优化

Python 多回路优化,python,loops,for-loop,Python,Loops,For Loop,我正在用python编写一个包含六个循环的程序。该程序给出了一个3x3矩阵的所有组合,其中每行加起来等于kt[i]。我想知道这个程序是否有任何优化来减少循环,因为使用太多嵌套在一起的循环不是很好 for r0 in range(0,kt[0]+1): for s0 in range(0,kt[0]+1-r0): k[0]=[r0,s0,kt[0]-r0-s0] for r1 in range(0,kt[1]+1): for s1 i

我正在用python编写一个包含六个循环的程序。该程序给出了一个3x3矩阵的所有组合,其中每行加起来等于kt[i]。我想知道这个程序是否有任何优化来减少循环,因为使用太多嵌套在一起的循环不是很好

for r0 in range(0,kt[0]+1):
    for s0 in range(0,kt[0]+1-r0):
        k[0]=[r0,s0,kt[0]-r0-s0]
        for r1 in range(0,kt[1]+1):
            for s1 in range(0,kt[1]+1-r1):
                k[1]=[r1,s1,kt[1]-r1-s1]
                for r2 in range(0,kt[2]+1):
                    for s2 in range(0,kt[2]+1-r2):
                        k[2]=[r2,s2,kt[2]-r2-s2]
                        do something here
使用如何


使用numpy库看看这个问题如果你能把问题简化一点,给出一个完整的例子,用
kt
k
@U2EF1的值,例如kt=[1,1,1],得到一个答案可能会有帮助,k是一个3x3矩阵,将在程序中得到
import itertools

elems = range(4)
for row1 in itertools.permutations(elems, 3):
   for row2 in itertools.permutations(elems, 3):
      for row3 in itertools.permutations(elems, 3):
         print '{}\n{}\n{}\n{}'.format(row1, row2, row3, '-'*80)
      print '='*80