如何在函数内创建嵌套的 for 循环?

How do I create nested for loops inside a function?

我正在尝试创建一个函数,它将接受输入 x 并创建 x 嵌套 for 循环。这是一个例子:

def looper(loop_amount, loop_value):
    for n in range(loop_amount):
        # Create a nested loop with loop_value.

looper(3, 5)

# Creates this:
for n in range(5):
    for n in range(5):
        for n in range(5):

您可以使用 itertools 模块

import itertools

for tup in itertools.product(*(range(loop_value) for _ in range(loop_amount))):
    # tup is a tuple of length loop_amount which will contain 
    # every combination of numbers between 0 and loop_value-1

你很接近,希望这对你有帮助。

def loop(value):
    for n in range(value):
       

def looper(loop_amount, loop_value):
    for n in range(loop_amount):
        loop(loop_value)

一个可能的(虽然可能 non-pythonic)解决方案是使用递归:

def looper(loop_amount, loop_value):
    if loop_value == 0:
        # Code to be run in innermost loop
    else:
        for n in range(loop_amount):
            looper(loop_value - 1)

这可以扩展为访问每个循环的索引,或者以某种方式具有 return 值。