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

福特汽车零件号拆解多字典匹配实现及代码优化咨询

福特零件号解析实现优化方案

当前需要解析格式为xxxx-xxxxxxx-x的福特汽车零件号,将其拆分为前缀、主码、后缀三段输出各段对应的零件属性,例如零件号7L3Z-14D696-A对应2007年福特F150卡车使用的、经过1次修订的加热元件。
已定义年份映射Years、产品线映射PL、设计责任方映射R_Code三个字典做匹配,原有代码不仅存在缩进错误,逻辑也有多处bug,且嵌套if判断过多效率较低,优化实现方案如下:


完整实现代码

# 年份映射字典(已将数字key转为字符串,适配输入字符匹配)
Years = {"A": 2010, "B": 2011, "C": 2012, "D": 2013, "E": 2014, "F": 2015, "G": 2016, "H": 2017,
         "J": 2018, "K": 2019, "L": 2020, "M": 2021, "N": 2022, "P": 2023, "R": 2024,
         "S": 1995, "T": 1996, "V": 1997, "W": 1998, "X": 1999, "Y": 2000,
         "1": 2001, "2": 2002, "3": 2003, "4": 2004, "5": 2005, "6": 2006, "7": 2007, "8": 2008, "9": 2009}

# 产品线映射字典
PL = {
    "S1": "Aspire", "S2": "Contour", "S4": "Escort/Focus", "S5": "Ka", "S6": "Fiesta",
    "S7":"Mondeo", "S8": "Probe", "S9": "Mystique", "M1": "Tracer",
    "F1":"Taurus", "F2": "Windstar", "F3":"Continental", "F4":"Sable", "F5": "Villager", 
    "F6":"Thunderbird", "F7": "EN158", "F8": "FW178", "L1":"Bronco", "L2":"Explorer", 
    "L3": "F150/F250", "L4": "Maverick 4X4", "L5": "Ranger", "L6": "Aerostar",
    "R1": "Aston-Martin", "R2": "Falcon", "R3": "Mustang", "R4": "Scorpio", "R5": "Fairlane", 
    "R6": "LTD", "R8": "Jaguar S-Type", "R9": "Mark VIII",
    "W2": "Cougar", "W3": "Grand Marquis", "W4": "DEW98", "W5": "EW171",
    "W6": "Thunderbird RWD", "W7": "EN114 Crown Vic", "W8": "Jaguar XK8/XKR", "W9": "Jaguar XJ-Series",
    "C1": "Transit", "C2": "Econoline", "C3": "Medium Truck", "C4": "L-Series/Cargo-CF Series Truck",
    "U1":"Power Products", "U2": "Motorcraft Brand", "U3": "Outside Sales", "U4": "#3"
}

# 设计责任方映射字典
R_Code = {
    "A": "Light Truck Engineering", "B": "Body Engineering", "C": "Chassis Engineering",
    "D": "Overseas Product Engineering", "E": "Engine Engineering, Engine Product and Manufacturing Engineering",
    "F": "Electronics Division, Product Engineering Offc" , "G": "Electronics Division, Arbor Plant" ,
    "H": "Climate Control Division, Product Engineering Offc" , "J": "Ford Customer Svc. Division Parts and Accessories Engineering Offc" ,
    "K": "Import Component Engineering, Body Engineering" , "L": "Ford Customer Svc. Division Power Products/Ford Cust. Svc. Engineering" ,
    "M": "Performance Operations, Special Vehicle Operations" , "P": "Transmission and Axle Product and Manufacturing Engineering (Automatic Transmissions)" ,
    "R": "Transmission and Axle Product and Manufacturing Engineering (Manual Transmissions)",
    "S": "Light/Heavy Truck Engineering, Truck Special Order Department" , "T": "Heavy Truck Engineering" ,
    "U": "Electrical and Fuel Handling Division, Product Energy Office",
    "V": "Domestic Special Order Engineering Section, Car Special Order and Special Vehicle Engineering" ,
    "W": "Transmission and Axle Product and Manufacturing Engineering (Axle and Driveline)" ,
    "X": "Plastic and Trim Products Division" , "Y": "Ford Customer Service Division (Lincoln and Mercury), Product Analysis and Publications" ,
    "Z": "Ford Customer Service Division (Ford), Product Analysis and Publications" ,
    "8": "Electric Vehicle Engineering", "5": "Ford PN96/UN98 Platform Engineering"
}

def parse_ford_part(part_no: str):
    # 统一输入预处理:去空格转大写
    part_no = part_no.strip().upper()
    # 拆分三段并校验格式
    parts = part_no.split('-')
    if len(parts) !=3 or len(parts[0])!=4 or len(parts[1])!=7 or len(parts[2])!=1:
        return "零件号格式错误,正确格式为 xxxx-xxxxxxx-x"
    prefix, main_code, suffix = parts
    # 字典直接查找,无冗余if判断,查找效率为*O(1)*
    year = Years.get(prefix[0], "未知年份")
    prod_line = PL.get(prefix[1:3], "未知产品线")
    design = R_Code.get(prefix[3], "未知设计责任方")
    # 解析后缀修订版本
    revision = f"第{ord(suffix)-ord('A')+1}次修订" if suffix.isalpha() else f"修订版本{suffix}"
    return f"零件属性:{year} {prod_line},设计责任方:{design},{revision}"

# 调用示例
if __name__ == "__main__":
    part = input("请输入福特零件号:")
    print(parse_ford_part(part))

优化说明

  • 修复了原有代码的逻辑bug:修正年份字典key类型不匹配、索引越界、前缀长度判断错误等问题
  • 完全去除冗余嵌套if判断,利用字典自带的get方法直接取值,不会出现键不存在报错
  • 统一输入预处理逻辑,无需单独判断输入大小写
  • 一次性完成全零件号格式校验,避免分段输入的逻辑漏洞

内容的提问来源于stack exchange,提问作者J.R.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:45:04