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

如何更优雅地实现元组列表多条件校验的if语句?

代码优化方案

核心逻辑梳理

原校验规则可等价合并为:必须满足首元组首元素为字符串,同时满足以下两个条件任意一个即可通过:

  • 列表仅包含1个元组
  • 列表包含多个元组时,首元组的浮点数值至少是第二个元组浮点数值的2倍

优化后代码

# 建议先补充空列表校验,避免索引越界
if not tuples:
    print("Fail")
elif isinstance(tuples[0][0], str) and (len(tuples) == 1 or tuples[0][1] >= 2 * tuples[1][1]):
    print("Success")
else:
    print("Fail")

优化说明

  • 利用逻辑运算的分配律合并重复条件,消除多层嵌套和重复的成功分支代码
  • 依赖Python逻辑或的短路特性:当len(tuples) == 1判定为真时,不会执行后续访问tuples[1]的逻辑,不会出现索引越界问题
  • 额外补充了空列表的边界处理,解决原代码遇到空列表时直接报错的问题
  • 注:原规则要求「至少是2倍」,如果你需要严格大于2倍,把>=改成>即可匹配你原有代码的逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:06:03