python - 在 python 中使用 lambda 函数以交互方式构建“多步”函数
问题描述
我正在尝试构建一个函数,它是“r”的函数,并接受两个参数数组r0
和V
,以及n
的元素数r0
。
函数定义如:如果r
在下面r[0]
,则返回V[0]
;ifr
在r[0]
and之间r[1]
, returnV[1]
等等……最后,如果r
在上面r[n]
, return V[n+1]
。这说明了手动定义 n = 3 时的函数:
这是我尝试使用 lambda 函数执行此操作的示例代码:
n = 3
r0 = [10,30,60]
V = [1., -5. , 10., 3. ]
def makefn(r0, V):
return lambda r : (V[0]-V[1])/2 if r < r0[0] else (V[1]-V[0])/2
for i in range(n):
temp_function[i] = makefn(r0[i:i+1],V[i:i+2])
step_function = lambda r : (V[0]+V[-1])/2 + [temp_function[i](r) for i in range(n)]
问题是: – 我不知道如何预先分配一个函数列表,所以它返回““temp_function”未定义。” "——我不知道如何“添加”函数,所以它们在那里组合结果。
关于如何修复此代码的任何想法?
解决方案
推荐阅读
- flutter - 我们如何降低颤动中下拉列表的高度
- ios - 如何从 Testflight 公共链接中删除测试人员有效地释放测试人员上限
- python - python轮询等待返回值
- swift - 如何让 SK 序列快速运行
- sql-server - sql server 容器启动时创建数据库
- java - 原因:java.lang.IllegalArgumentException:cookie 值或属性中的控制字符
- android - 如何在flutter中检查免费试用期到期日期InApp购买
- javascript - Javascript 在 window.popstate 上获取未定义的 URL
- gcc - 不支持更高版本的 gcc
- sql-server - 恢复 MS SQL 数据库