You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将条件赋值逻辑简化为一行?分两种场景解答

Python代码简化:两种场景的一行实现

针对你给出的代码片段,我们可以根据不同需求将最后两行简化为一行,以下分场景说明:

场景1:保留第一个非None值

如果希望仅当c_f为None(或其他假值,比如0、""等)时,才用new_c_f替换它,也就是保留最早出现的非None/真值,直接使用or运算符即可:

c_f = None
# c_f may change here
c_f = c_f or new_c_f

这个逻辑和你原始的if not c_f: c_f = new_c_f完全一致:or会返回第一个为真的操作数,若c_f已经是有效值,就保留它;否则替换为new_c_f。

场景2:保留最后一个非None值

如果希望只要new_c_f是非None(或真值),就用它覆盖c_f,仅当new_c_f无效时才保留原c_f(即保留最后出现的非None/真值),可以按两种情况实现:

包含所有假值的情况(如0、""也视为无效)

c_f = None
# c_f may change here
c_f = new_c_f or c_f

这里or会优先取后出现的new_c_f,只有当它为假时才保留原c_f。

仅针对None判断(忽略其他假值)

如果只想在new_c_f不是None时才替换,不管它是0、""等假值,用三元表达式更精准:

c_f = None
# c_f may change here
c_f = new_c_f if new_c_f is not None else c_f

内容的提问来源于stack exchange,提问作者john

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 02:06:52