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
如果您事先不知道需要多少个变量,则不必解压product到i,j和k。您可以将其保留为:
for nums in product(range(4), repeat=3):
# do something with nums