python - Python有像Mathematica一样的 `nest`函数吗?

标签 python function recursion functional-programming wolfram-mathematica

Mathematica 有一个方便的 Nest用于重复计算 f(f(f(f(...f(n))))) 的函数。不是你每天都需要的东西,但偶尔有用。这是一个简单的实现:

def nest(f, expr, n):
    assert n >= 0
    if n == 0:
        return expr
    else:
        return f(nest(f, expr, n - 1))
>>> nest(lambda x: (1 + x) ** 2, 1, 3)
676

有Pythonic的方法可以做到这一点吗?

最佳答案

也许如果你喜欢这些东西,你可以看看 functools.reduce :

from functools import reduce

def nest(f, expr, n):
    return reduce(lambda x, _: f(x), range(n), expr)
>>> nest(lambda x: (1 + x) ** 2, 1, 3)
676

关于python - Python有像Mathematica一样的 `nest`函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65345098/

相关文章:

python - 如何使用 python 将响应写入 JSON 格式的文件中?

python - 将项目添加到列表的字典中

function - 如果esp指向栈顶,那么ebp指向哪里?

algorithm - 给定一个整数数组和一个数字 n,计算使用整数求和到 n 的方法数

java - 将一个数 n 分成两个数,使得两个数之和为 n

python - 关于groupby()的正确用法 : Python 3

Javascript 函数调用给出了意想不到的奇怪结果。

javascript - 将 javascript 对象值添加到全局变量

python - 应用于共享数据类型的递归在 python 中出错

python - 使用ProcessPoolExecutor进行网页抓取: How to get data back to queue and results?