Python字典指定键无有效值时,如何用单行代码获取备选键的值?
解决方案
你可以直接利用Python布尔运算的短路特性,一行实现和原有逻辑完全一致的效果:
map_value = mapping.get("b") or mapping.get("c") or ""
逻辑说明
dict.get(key)方法会在键不存在时默认返回None,避免了直接用mapping[key]可能抛出的KeyError异常or运算符会按顺序返回第一个为真值的表达式结果:- 优先取
b对应的值,若b不存在或值为假值(包括None、0、空字符串、空列表等),就会继续判断下一个表达式 - 若
c也不存在或值为假值,最终返回兜底的空字符串,和你原有代码的初始值逻辑一致
- 优先取
特殊场景适配
如果你的业务中0、空字符串这类Python默认假值属于需要保留的有效值,仅需要排除None或者键不存在的情况,可以调整为显式判断:
# 仅当b不存在或值为None时才取c的值 map_value = mapping["b"] if "b" in mapping and mapping["b"] is not None else mapping.get("c", "")
内容的提问来源于stack exchange,提问作者user001
相关产品推荐
相关产品推荐

