首页 > 解决方案 > 如何使用get函数将参数/参数传递给lambda函数,该函数是python字典中的值?

问题描述

为了实现 switch case,人们建议使用字典,如:

result = { 'a': lambda x: x * 5, 'b': lambda x: x + 7, 'c': lambda x: x - 2 }

并使用 -result['a'](2)

但是要设置默认值,人们建议使用 get 函数。如何使用 get 传递 'a' 和 2 以及默认值?

这不起作用:result.get(['a'](2),default)

这里 'a' 是要搜索的键,如果找到,则 2 是 lambda 函数的参数。如果未找到键“a”,默认值表示任何值。

标签: pythonpython-3.x

解决方案


语法是dict.get(key_to_find, default_return_if_key_not_found). 在您的示例"a"中是一个键,并且2是一个参数。您是否打算将此作为该字典的默认返回值?如果是这样:

result.get(some_key, result["a"])

如果存在,这将返回lambda关联的 with ,否则,将返回与 key 关联的关联。当然,您要从该字典中定义为默认返回值的确切内容还不是很清楚。some_keysome_keylambda"a"

相反,如果您尝试为lambda表达式的参数提供默认值,则需要lambda x=default_value: return_valuelambda表达式执行类似操作。


推荐阅读