如何在函数内创建嵌套的 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 值。
我正在尝试创建一个函数,它将接受输入 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 值。