python - 如何使用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”,默认值表示任何值。
解决方案
语法是dict.get(key_to_find, default_return_if_key_not_found)
. 在您的示例"a"
中是一个键,并且2
是一个参数。您是否打算将此作为该字典的默认返回值?如果是这样:
result.get(some_key, result["a"])
如果存在,这将返回lambda
关联的 with ,否则,将返回与 key 关联的关联。当然,您要从该字典中定义为默认返回值的确切内容还不是很清楚。some_key
some_key
lambda
"a"
相反,如果您尝试为lambda
表达式的参数提供默认值,则需要lambda x=default_value: return_value
为lambda
表达式执行类似操作。
推荐阅读
- vuejs2 - 在 VueJS 中构建后扩展 env 变量
- python - 如何从在云控制台上创建的服务帐户访问与我的 client_email 共享的 google 表格
- scala - 在子类中生成字符串实现
- kotlin - 科特林。如何在按钮向上事件上执行代码
- javascript - 导出图表引发 RangeError:highcharts-more.js 中超出最大调用堆栈大小
- java - 如何让 java 文件从 txt 文件中读取数字?
- angular - 在角度材质选项卡中设置水平滚动
- android - 我如何从 Gradle 测试中排除 Android 项目子模块的测试
- c# - Autofac 循环组件依赖 - 通用存储库
- c++ - 释放按钮时如何仅发送一次变量的值?