Python 如果满足条件,如何从条件中获取值?

Python 如果满足条件,如何从条件中获取值?,python,Python,让我们假设我想要获得密钥激活的相应值(参见下面的代码)。问题是,为了获取activation=“relu”的值,字典还将计算其他键的值,由于时间限制,我不希望这些键的值。有没有什么方法可以在没有if条件的情况下,在不浪费时间定义完整字典的情况下,只获取我为一个特定键假装的值 def get_analytical_derivatives(self, hi, activation): dact_dhi ={ 'leaky_relu' : 2*hi, 'r

让我们假设我想要获得密钥激活的相应值(参见下面的代码)。问题是,为了获取activation=“relu”的值,字典还将计算其他键的值,由于时间限制,我不希望这些键的值。有没有什么方法可以在没有if条件的情况下,在不浪费时间定义完整字典的情况下,只获取我为一个特定键假装的值

def get_analytical_derivatives(self, hi, activation):
     dact_dhi ={
         'leaky_relu' : 2*hi,
         'relu' : 2*hi**2,
         'softplus' : 1
         }

如果希望避免不必要的计算,则可以使用匿名函数,即
lambda

def get_analytical_derivatives(self, hi, activation):
    dact_dhi ={
        'leaky_relu' : lambda : 2*hi,
        'relu' : lambda : 2*hi**2,
        'softplus' : lambda : 1
    }
    return dact_dhi[activation]()

也许有更好的方法可以做到这一点,但我不太了解你在做什么,所以我的选择是有限的。

如果你想避免不必要的计算,那么你可以使用匿名函数,即
lambda

def get_analytical_derivatives(self, hi, activation):
    dact_dhi ={
        'leaky_relu' : lambda : 2*hi,
        'relu' : lambda : 2*hi**2,
        'softplus' : lambda : 1
    }
    return dact_dhi[activation]()

也许有更好的方法可以做到这一点,但我不知道你在做什么,所以我的选择有限。

你为什么在这里使用字典?嗨,它不需要是字典。我之所以使用它,是因为我正在向类发送一个与键对应的字符串。它可以是一个列表,但问题仍然是对的?简单地使用if-else语句对我来说是足够和有效的。这有什么问题吗?没有,只是问题是我可以有很多键,所以有很多if语句。你为什么在这里使用字典?嗨,它不需要是字典。我之所以使用它,是因为我正在向类发送一个与键对应的字符串。它可以是一个列表,但问题仍然是对的?简单地使用if-else语句对我来说是足够和有效的。这有什么问题吗?没有,只是问题是我可以有很多键,所以有很多if语句。