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

如何简化compare_lists函数的多条件判断逻辑?

优化compare_lists函数的简洁实现

当然有更简洁的实现方式!我们可以利用Python中列表的布尔特性(空列表在布尔上下文中等价于False,非空列表等价于True),以及更紧凑的逻辑判断来减少冗余的条件分支,同时保持代码的可读性。

优化后的代码

import numpy as np

def compare_lists(list_1, list_2):
    # 两个列表均为空,不返回任何值
    if not list_1 and not list_2:
        return
    
    # 判断两个列表的非空状态是否不同
    if bool(list_1) != bool(list_2):
        return 1 if list_1 else -1
    
    # 两个列表均非空时比较最小值
    return 1 if np.min(list_1) < np.min(list_2) else -1

代码解释

  1. 空列表判断简化:用not list_1代替len(list_1) == 0,用list_1代替len(list_1) > 0,这是Python的惯用写法,更简洁直观。
  2. 合并空列表分支:当两个列表的非空状态不同时(一个空一个非空),通过bool(list_1) != bool(list_2)一次性判断,再用三元表达式直接返回对应结果,避免了两个独立的elif分支。
  3. 非空列表的最小值比较:同样用三元表达式简化条件判断,让逻辑更紧凑。

验证使用示例

list_1 = []
list_2 = [2, 3, 4]
print(compare_lists(list_1, list_2)) # 输出-1

list_1 = [1, 3, 8]
list_2 = [2, 3, 4]
print(compare_lists(list_1, list_2)) # 输出1

运行结果完全符合预期。

注:如果你的list_1和list_2是普通Python列表而非NumPy数组,可以把np.min替换为Python内置的min函数,效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 22:02:39