Python多层嵌套for循环简化:寻求更简短的递归实现方案
代码简化实现方案
你提供的嵌套循环本质是生成所有4个非负整数的组合,满足组合元素之和小于10后逐行打印,下面给出递归实现及更简洁的写法:
递归实现(支持灵活调整变量个数)
def generate(remaining, var_count, current=[]): if var_count == 0: print(*current) return for val in range(remaining): generate(remaining - val, var_count - 1, current + [val]) # 对应原代码逻辑:总剩余上限10,变量个数4 generate(10, 4)
这个实现不需要硬写多层循环,要调整变量个数时只需要修改第二个入参即可,比如要生成5个变量的组合就把4改成5。
极简标准库实现
如果允许调用标准库,用itertools.product可以写出更短的代码:
from itertools import product for vals in product(range(10), repeat=4): if sum(vals) < 10: print(*vals)
内容的提问来源于stack exchange,提问作者Christian
相关产品推荐
相关产品推荐

