将lambda值集成到函数中

问题描述 投票:-1回答:1

这是我的代码:

def empty_dic():
    return lambda x: False

def add_elem(key, value, dic):
    return lambda x: value if x == key else dic(x)

def check4key(dic, key):
    return lambda x: True if x == key else dic(x)


dic = add_elem("brand", "audemars", add_elem("colour", "blue", empty_dic()))

print(check4key(dic, "colour")("colour"))

原则上,它按预期工作,但是如您所见,我需要解析lambda x函数参数之外的check4key值。这种破坏了我的check4key函数的目的。有没有一种方法可以将lambda x集成到函数的参数中?

python key-value higher-order-functions
1个回答
1
投票

为什么不这样:

check4key = lambda tuple: True if tuple[2] == tuple[1] else tuple[0][tuple[1]]

print(check4key(dic, "colour", "colour"))

也就是说,通常,您可以只将参数的元组传递给lambda,然后在lambda主体中显式解析它。但是,这开始成为您是否真的要使用lambda或函数的极端情况,这只是一个需要自己解决的问题。

© www.soinside.com 2019 - 2024. All rights reserved.