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

比较子列表元素顺序是否匹配主列表并返回对应校验结果

子列表与主列表顺序匹配校验实现

实现思路

  • 先为主列表的所有元素构建索引映射字典,避免每次查找元素位置时重复遍历主列表,大幅提升多子列表校验场景下的执行效率
  • 遍历子列表,依次校验元素是否存在于主列表、且当前元素在主列表的索引严格大于前一个元素的索引
  • 所有元素都满足上述条件则返回PASS,任意条件不满足直接返回FAIL

代码实现(Python)

def compare(sub_list, main_list):
    # 构建主列表元素到首次出现索引的映射
    main_element_index = {value: index for index, value in enumerate(main_list)}
    # 空列表默认返回PASS,可根据业务需求调整该逻辑
    if not sub_list:
        return "PASS"
    pre_index = main_element_index.get(sub_list[0])
    # 子列表第一个元素不在主列表中直接返回FAIL
    if pre_index is None:
        return "FAIL"
    for current_item in sub_list[1:]:
        current_index = main_element_index.get(current_item)
        # 元素不存在主列表 或 顺序不符合要求 直接返回FAIL
        if current_index is None or current_index <= pre_index:
            return "FAIL"
        pre_index = current_index
    return "PASS"

测试验证

# 示例定义
l = [1,2,3,4,5]
l1 = [2,5]
l2 = [5,1]

# 调用测试
print(compare(l1, l)) # 输出:PASS
print(compare(l2, l)) # 输出:FAIL

补充说明

如果主列表存在重复元素,上述实现默认取元素首次出现的位置校验顺序,如需按最后一次出现的位置校验,只需修改索引映射的构建逻辑为:

main_element_index = {value: index for index, value in reversed(list(enumerate(main_list)))}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:57:01