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

Python对比两个字符串列表实现车牌匹配的方法

车牌跨传感器匹配实现方案

需求说明

需要对比两个传感器采集的车牌记录:

  • 若同一车牌同时被两个传感器采集到,打印该车牌及对应的采集时间
  • 若车牌仅被单个传感器采集到,打印no match

输入数据每行包含3个字段,依次为传感器编号、采集时间、车牌号,输入样例如下:

1   12:00:00    45-NK-JX
1   12:00:03    DX-89-EH
1   12:00:09    DG-65-LN
2   12:00:10    RW-MJ-73
1   12:00:11    ZS-24-74
2   12:00:14    07-SD-12
2   12:00:18    GX-62-38
1   12:00:19    09-PQ-23
2   12:00:20    45-NK-JX
1   12:00:20    NG-24-DB

原代码问题

原逻辑存在3个核心错误:

  • 仅用单个变量存储传感器采集的车牌,只能保存最后一条记录,会丢失之前所有采集数据
  • 对车牌字符串直接做集合运算,实际是把字符串拆成单个字符取交集,不是车牌整体匹配
  • 仅在处理传感器2的记录时做判断,传感器1独有的车牌不会输出no match

正确实现代码

核心思路是用字典分别存储两个传感器采集到的车牌和对应时间,待所有数据读取完成后,遍历全部车牌做匹配判断:

def match_plates():
    # 分别存储两个传感器的 车牌:采集时间 映射
    sensor1_records = {}
    sensor2_records = {}

    # 逐行读取输入,可根据实际场景替换为文件读取逻辑
    import sys
    for line in sys.stdin:
        line = line.strip()
        if not line:
            continue
        sensor, capture_time, plate = line.split()
        if sensor == "1":
            sensor1_records[plate] = capture_time
        elif sensor == "2":
            sensor2_records[plate] = capture_time
    
    # 收集所有出现过的车牌
    all_plates = set(sensor1_records.keys()).union(set(sensor2_records.keys()))
    for plate in all_plates:
        in_s1 = plate in sensor1_records
        in_s2 = plate in sensor2_records
        if in_s1 and in_s2:
            print(f"匹配成功 车牌:{plate},传感器1采集时间:{sensor1_records[plate]},传感器2采集时间:{sensor2_records[plate]}")
        else:
            print(f"车牌:{plate},no match")

if __name__ == "__main__":
    match_plates()

样例输出

针对给出的输入样例,运行后输出如下:

车牌:RW-MJ-73,no match
车牌:07-SD-12,no match
车牌:GX-62-38,no match
车牌:09-PQ-23,no match
车牌:NG-24-DB,no match
匹配成功 车牌:45-NK-JX,传感器1采集时间:12:00:00,传感器2采集时间:12:00:20
车牌:DX-89-EH,no match
车牌:DG-65-LN,no match
车牌:ZS-24-74,no match

如果需要边读边实时输出结果,只需要在每次存入新记录时,检查当前车牌是否已经在另一个传感器的记录字典中存在即可,不需要等全部数据读完再处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 11:39:39