Python 高阶函数伪字典
我试图使用高阶函数实现一种键值存储。 现在,我请您原谅,这大概是一段非常混乱的代码,很难理解,但下面是:Python 高阶函数伪字典,python,dictionary,higher-order-functions,Python,Dictionary,Higher Order Functions,我试图使用高阶函数实现一种键值存储。 现在,我请您原谅,这大概是一段非常混乱的代码,很难理解,但下面是: def empty_dic(): return lambda x : False def look_up(key,dic): return dic(key) def add_elem(key,value,dic): return lambda x : value if x == key else dic(x) def change_value(key,new_valu
def empty_dic():
return lambda x : False
def look_up(key,dic):
return dic(key)
def add_elem(key,value,dic):
return lambda x : value if x == key else dic(x)
def change_value(key,new_value,dic):
return lambda x : new_value if key == x else dic(key)
mydic = change_value("colour","red",add_elem("brand","audemars",add_elem("colour","blue",empty_dic())))
print (look_up("brand",mydic))
结果:蓝色
在这种情况下,我希望查找函数返回“audemars”,但它给出了最后一个“add\u elem”函数的颜色。如果
change\u value
函数中出现错误,请替换
lambda x : new_value if key == x else dic(key)
到
lambda x : new_value if key == x else dic(x)