您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

优雅地应用Python函数列表

优雅地应用Python函数列表

使用reduce()功能

# forward-compatible import
from functools import reduce

result = reduce(lambda res, f: f(res), funcs, val)

reduce()将第一个参数(可调用)应用于从第二个参数获取的每个元素,加上到目前为止的累计结果(如(result, element))。第三个参数是一个起始值(funcs否则将使用的第一个元素)。

在Python 3中,内置函数被移到了functools.reduce()location;为了向前兼容,Python 2.6及更高版本中提供了相同的参考。

其他语言可能将其称为折叠

如果每个函数也需要 中间 结果,请使用itertools.accumulate()(仅从Python 3.3开始,用于带有函数参数的版本):

from itertools import accumulate, chain
running_results = accumulate(chain(val, funcs), lambda res, f: f(res))
python 2022/1/1 18:38:56 有254人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶