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

Python开发需求:找出两个列表中的最大公共数值

找出两个列表共有的最大数值的实现方案

核心思路

解决这个问题的核心逻辑是:先提取两个列表的公共元素,再从这些公共元素中筛选出最大值。根据场景不同,有两种高效实现方式:

通用实现(适用于任意列表)

这种方法不依赖列表是否排序,兼容性更强:

  • 将其中一个列表转为集合,利用集合O(1)的成员查询效率提升性能
  • 遍历另一个列表,筛选出同时存在于集合中的元素,得到公共元素列表
  • 若公共元素列表为空,返回预设值(如None);否则返回该列表的最大值

代码示例

def find_max_common(list1, list2):
    # 转换为集合优化查询速度
    set_list2 = set(list2)
    # 筛选两个列表的公共元素
    common_elements = [num for num in list1 if num in set_list2]
    
    if not common_elements:
        return None  # 无公共元素时返回None,可根据需求改为提示或其他值
    return max(common_elements)

# 测试示例
list1 = [2,4,6,12]
list2 = [2,4,6,8,14]
print(find_max_common(list1, list2))  # 输出: 6

优化实现(适用于可排序的列表)

如果允许对列表排序,可以进一步提升性能——无需收集所有公共元素,从大到小遍历第一个列表,找到第一个存在于第二个列表的元素即可返回:

def find_max_common_optimized(list1, list2):
    set_list2 = set(list2)
    # 对list1降序排序,逐个检查是否在集合中
    for num in sorted(list1, reverse=True):
        if num in set_list2:
            return num
    return None

注意事项

  • 若其中一个或两个列表为空,需根据业务逻辑调整返回值(比如返回None或抛出提示)
  • 列表中的重复元素不影响结果,max()仅关注数值大小
  • 当列表数据量极大时,集合查询的效率远高于直接列表遍历查询

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 01:38:10