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

Python如何统计两个洗牌后列表首次不匹配前的连续匹配数

列表前置连续匹配数统计实现

需求规则

  • 从列表起始索引(索引0)开始,对位对比两个列表的元素
  • 仅统计首个不匹配元素出现前的连续匹配元素总数
  • 首个不匹配位置之后的所有元素,无论是否对位相等,都不纳入统计

参考示例

初始定义两个完全一致的列表:

list1 = [1,2,3,4,5,6]
list2 = [1,2,3,4,5,6]

对两个列表分别洗牌后,需要计算本次洗牌结果的对位匹配数。例如某次洗牌结果为:

shuffled_list1 = [2,4,5,3,1,6]
shuffled_list2 = [2,4,5,1,3,6]

结果计算说明:前3位元素(索引0、1、2)2、4、5完全对位匹配;索引3位置两个列表元素分别为3和1,是首个不匹配位置;后续索引5位置的6虽然匹配,但出现在不匹配项之后,不计入统计,最终返回匹配数为3。

实现代码(Python)

import random

def count_prefix_match(list_a, list_b):
    match_count = 0
    for item_a, item_b in zip(list_a, list_b):
        if item_a != item_b:
            break
        match_count += 1
    return match_count

if __name__ == "__main__":
    # 初始化原始列表
    list1 = [1,2,3,4,5,6]
    list2 = [1,2,3,4,5,6]
    # 执行洗牌
    random.shuffle(list1)
    random.shuffle(list2)
    print(f"洗牌后列表1:{list1}")
    print(f"洗牌后列表2:{list2}")
    print(f"前置连续匹配数:{count_prefix_match(list1, list2)}")

逻辑说明

  • 用zip同步遍历两个列表的对位元素,若两个列表长度不一致,会自动以更短的列表长度为遍历上限,避免索引越界
  • 遍历过程中遇到第一对不相等的元素直接终止循环,返回当前累计的匹配数
  • 若两个列表完全一致,会遍历完所有元素,返回列表总长度,符合统计规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 11:27:15