python中优雅的多维循环

我想计算三个整数的平方和可以表示哪些整数。在我的情况下,直到 i,j,k 都等于 4。我为此目的使用的(不优雅的)代码如下:

nums = []
for i in range(4):
    for j in range(4):
        for k in range(4):
            nums.append(i*i + j*j + k*k)

这个问题有更pythonic或更优雅的解决方案吗?理想情况下,对于尽可能多的变量 (i, j, k, ..., n)。

回答

您可以使用以下itertools.product方法执行此操作:

from itertools import product

for i, j, k in product(range(4), repeat=3):
    # do something with i, j and k

如果您事先不知道需要多少个变量,则不必解压producti,jk。您可以将其保留为:

for nums in product(range(4), repeat=3):
    # do something with nums


以上是python中优雅的多维循环的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>