我正在寻找一种更短(可能是递归)的方法来编写以下内容:
for x1 in range(10):
for x2 in range(10 - x1):
for x3 in range(10 - (x1 + x2)):
for x4 in range(10 - (x1 + x2 + x3)):
print(x1,x2,x3,x4)
最佳答案
您想要的是过滤后的产品。使用 itertools
即可,无需递归。
from itertools import product
n=10
for x1, x2, x3, x4 in filter(lambda x: sum(x) < n, product(range(n), repeat=4)):
print(x1, x2, x3, x4)
输出:
0 0 0 0
0 0 0 1
0 0 0 2
0 0 0 3
0 0 0 4
0 0 0 5
0 0 0 6
0 0 0 7
0 0 0 8
0 0 0 9
0 0 1 0
...
9 0 0 0
关于python - 简化嵌套 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69260276/