如何在N次迭代中应用函数,同时在每次迭代中更新值?



请帮我重写这个函数,使其不仅适用于"两次";但对于灵活变量ntimes可能。

def apply_twice(func, *args):
return func(func(*args))

我尝试使用for循环,但我最终没有应用变量两次,但执行它两次有不同的结果。

你需要一个循环:

def apply_n_times(n, func, arg):
for _ in range(n):
arg = func(arg)
return arg

如果你有多个参数,那么这取决于你如何传播它们。例如,如果func保证返回具有尽可能多值的元组,则:

def apply_n_times(n, func, *args):
for _ in range(n):
args = func(*args)
return args

最新更新