python - 行为类似于 reduce 但产生所有中间结果的单行生成器
问题描述
我喜欢在 Python 中实现各种常用的高级算法行为是多么容易。
我现在正在寻找一种最佳方式来实现递归序列或任何其他类型的生成器,其下一个值取决于最近生成的先前值的 O(1)。
即是否可以reduceGenerator
在一行中实现以下内容(可能使用现有reduce
函数)?
例子
发电机
def reduceGenerator(f, iterable, initialValue):
it = iter(iterable)
value = initialValue
for x in it:
value = f(value, x)
yield value
用例:
以下生成序列(a * s[i-1] + b) mod m
:
s = reduceGenerator(lambda prev, i: (a * prev + b) % m, range(N), s0)
s1 = next(s)
s2 = next(s)
解决方案
推荐阅读
- c# - Windows 服务中的路径 oa 文件
- javascript - ajax 选择 HTML 的特定部分
- arrays - 如何在laravel中的该数组之前获取3个数组
- v4l2 - 在 V4L2 标准中,多平面格式是否需要分散/收集 dma 分配器?
- c++ - ESP32 HTTPS 简单 GET 请求
- kotlin - 说明调度程序更改与未更改时 withContext 行为的差异
- android - Wear OS 上 Firebase 授权的最佳实践
- angular - 嵌套 ng-content 的父注入器无法正常工作
- reactjs - react-hook-form useFieldArray 与嵌套数组
- vue.js - Vue:在 axios 调用后填充表单