如何在Python lambda函数中为字典取值设置兜底返回规则?
问题解答
该需求完全可以实现,你之前的代码报错是因为构造字典时传入的x=x是将键名固定为字符串x,而非变量x的实际值,构造出的字典根本不存在你要查询的未知键,自然会抛出KeyError。
正确实现方案
最简洁的写法是利用Python字典内置的get()方法,该方法支持传入找不到键时返回的默认值,刚好匹配你的需求:
arg = 'maybe' res = (lambda x: dict(yes=1, no=0).get(x, x))(arg) print(res) # 输出:maybe
你可以测试不同的arg取值:
- 当
arg='yes'时返回1 - 当
arg='no'时返回0 - 当
arg为其他任意值时,直接返回arg本身
可选写法
如果你更偏向用条件判断,也可以写为三元表达式的形式:
res = (lambda x: 1 if x == 'yes' else 0 if x == 'no' else x)(arg)
内容的提问来源于stack exchange,提问作者marcio
相关产品推荐
相关产品推荐

