请帮我重写这个函数,使其不仅适用于"两次";但对于灵活变量n
或times
可能。
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