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

Python判断列表A存在元素小于列表B元素的更优写法及一行实现

问题描述

给定两个存储整数的列表A和B,判断规则为:若列表A中至少存在一个元素小于列表B中至少一个元素则返回True,否则返回False。

运行示例

>>> A = [1,4]
>>> B = [0,2]
>>> compare_lists(A, B) # True 因为A中的1小于B中的2

>>> A = [2,4]
>>> B = [0,2]
>>> compare_lists(A, B) # False 因为A中所有元素都大于等于B中所有元素

原始实现

最直接的双重循环实现如下:

def compare_lists(a, b):
    for i in a:
        for j in b:
            if i < j:
                return True
    return False
一行实现方案

1. 完全等价原始逻辑的写法

用Python内置的any()函数配合生成器表达式即可实现和原始实现完全一致的短路逻辑,代码如下:

def compare_lists(a, b):
    return any(i < j for i in a for j in b)
  • 说明:any()会迭代生成器的结果,只要遇到第一个为True的结果就立刻返回,和原始双重循环的提前返回逻辑完全一致,没有额外性能损耗。

2. 性能优化版写法

实际上原始双重循环的性能还有很大优化空间,我们可以通过比对两个列表的极值直接得到结果,时间复杂度从O(n*m)降低到O(n+m),一行实现如下:

def compare_lists(a, b):
    return min(a) < max(b)
  • 说明:逻辑依据是只要A的最小元素小于B的最大元素,就必然存在至少一个A的元素小于至少一个B的元素;反之如果A的最小元素都大于等于B的最大元素,那么所有A元素都大于等于所有B元素,完全符合题目要求的判断规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:09:02