我想计算三个整数的平方和可以表示哪些整数。在我的情况下,直到 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),我想要。
答案 0 :(得分:5)
您可以使用 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
答案 1 :(得分:2)
如果您想为更大的值执行此操作,我建议使用 itertools
import itertools
def sumsq(x):
return sum(y * y for y in x)
max_integer = 4
num_terms = 3
num = [sumsq(x) for x in itertools.combinations_with_replacement(range(1, max_integer + 1), num_terms)]
答案 2 :(得分:0)
可以使用列表理解在一行中完成:
$result = mysqli_query($conn,"your query");
while($row = mysqli_fetch_assoc($result))
{
echo '<tr><td>'.$row['tableColumnOne'].'</td>
<td>'.$['tableColumnTwo'].'</td>
<td>'.$['tableColumnThree'].'</td>
</tr>';
}