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

如何对字符串列表中的电子元器件分类并实现唯一归类?

解决元器件分类去重问题

我来帮你搞定这个元器件分类并去重的需求,直接上可行的Python方案,一步一步来:

思路概述

核心是用字典来存储元器件和对应类别(字典的键天然唯一,刚好解决重复元器件只存一次的问题),然后遍历每个字符串块,识别类别并提取元器件,最后输出整理好的结果。

实现代码

lst = [
    'CAPACITOR\n C500 1u PN"1";\n C501 1u PN"2";\n\nRESISTOR\n R100 10 PN"10";\n R101 10 PN"11";\n',
    '\nCAPACITOR\n C500 1u PN"1";\n C507 1u PN"2";\n\nCONNECTOR\n TP100 NT;\n TP101 NT;'
]

# 初始化字典存储元器件-类别映射,确保唯一
component_map = {}

for s in lst:
    # 按空行分割成不同的类别块
    category_blocks = [block.strip() for block in s.split('\n\n') if block.strip()]
    for block in category_blocks:
        # 分割类别名和元器件行
        lines = block.split('\n')
        category = lines[0].strip()
        # 把类别名转成首字母大写,其余小写的格式
        formatted_category = category.capitalize()
        # 处理每个元器件行
        for line in lines[1:]:
            line = line.strip()
            if not line:
                continue
            # 提取元器件编号(行开头的字母+数字部分,直到第一个空格)
            component_id = line.split()[0]
            # 只有当元器件不在字典里时才添加,确保只归类一次
            if component_id not in component_map:
                component_map[component_id] = formatted_category

# 输出结果
for comp, cat in component_map.items():
    print(f"{comp} , {cat}")

运行结果

运行上面的代码后,会得到你想要的输出:

C500 , Capacitor
C501 , Capacitor
R100 , Resistor
R101 , Resistor
C507 , Capacitor
TP100 , Connector
TP101 , Connector

代码细节说明

  • 用split('\n\n')分割每个字符串里的不同类别块,比如把CAPACITOR和RESISTOR的内容分开;
  • 对每个类别块,先提取第一行作为类别名,转成首字母大写的格式;
  • 遍历类别下的每一行元器件,用split()[0]提取最开头的元器件编号(比如C500、R100);
  • 字典的not in判断确保每个元器件只被记录一次,后面重复出现的会被忽略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:41:08