python - 简化嵌套 for 循环

标签 python recursion syntax

我正在寻找一种更短(可能是递归)的方法来编写以下内容:

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/

相关文章:

java - 递归查找链表中的倒数第 n 个元素

c++ - 如何从开关内部跳出循环?

python - PyCharm的docstring模板有什么用?我如何有效地使用它?

python - Pandas :按组设置差异

python - 有没有办法获取添加到 SQLAlchemy 模型的所有自定义事件监听器的列表?

javascript - 带有 setTimeout 的递归 JS 函数

python - 由于未安装包轮,因此无法构建轮子

php - 如何在 PHP 函数中获取当前递归级别

php - Try-Catch 未捕获自定义异常类型

syntax - Knockout.js 无容器 "foreach"不适用于 <table>