首页 > 解决方案 > 有没有办法让 lambda 使用 if 条件调用定义?

问题描述

我正在做一个优化问题,我正在尝试使用 lambda 和 def 定义一个约束。

基本上我想做的是:

lambda x: add_2 if no_added == 2

add_2 是我要调用的定义:

def add_2(x):
    lc2 = x[36]-0.02
    return lc2

什么是正确的语法?

标签: python

解决方案


只需调用该函数并创建一个默认else块:

lambda x: add_2(x) if no_added == 2 else None

如果 None 不适合您,则返回其他值。无论如何,您可以在函数内部处理这个问题:

def add_2(x, no_added):
    if no_added == 2:
        return x[36]-0.02
    return None

推荐阅读