多回路优化

2024-04-19 13:47:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用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

Tags: in程序forhererange矩阵dosomething
1条回答
网友
1楼 · 发布于 2024-04-19 13:47:08

使用itertools.permutations怎么样?你知道吗

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

相关问题 更多 >