Python 如何对字符串列表中的组件进行分类
我有一个字符串列表,需要遍历这些字符串并对组件进行分类。组件在列表中的类别中,但是我不确定从哪里开始 lst=[ 电容器 C500 1u PN1; C501 1u PN2; 电阻 R100 10 PN10; R101 10 PN11;' , 电容器 C500 1u PN1; C507 1u PN2; 连接器 TP100新台币; TP101 NT;'] 上面的格式更易于查看Python 如何对字符串列表中的组件进行分类,python,python-2.7,Python,Python 2.7,我有一个字符串列表,需要遍历这些字符串并对组件进行分类。组件在列表中的类别中,但是我不确定从哪里开始 lst=[ 电容器 C500 1u PN1; C501 1u PN2; 电阻 R100 10 PN10; R101 10 PN11;' , 电容器 C500 1u PN1; C507 1u PN2; 连接器 TP100新台币; TP101 NT;'] 上面的格式更易于查看 lst=['电容器\n C500 1u PN1;\n C501 1u PN2;\n\n晶体管\n R100 10 PN10;
lst=['电容器\n C500 1u PN1;\n C501 1u PN2;\n\n晶体管\n R100 10 PN10;\n R101 10 PN11;\n','\n电容器\n C500 1u PN1;\n C507 1u PN2;\n\n连接器\n TP100 NT;\n TP101 NT;'] 我期望得到的结果是: C500,电容器 C501,电容器 电阻R100 R101,电阻器 C507,电容器 TP100,连接器 TP101,连接器 C500只需要定义一次
我只能得到一个组件列表,但不知道如何得到它们所属的类别。这是一种使用Regex的方法 例: 输出:
这是一种使用Regex的方法 例: 输出:
假设格式与显示的格式完全相同,它只是一个拆分序列和一个字典:
In [10]: lst = [
...: '''CAPACITOR
...: C500 1u PN"1";
...: C501 1u PN"2";
...:
...: RESISTOR
...: R100 10 PN"10";
...: R101 10 PN"11";''',
...:
...: '''CAPACITOR
...: C500 1u PN"1";
...: C507 1u PN"2";
...:
...: CONNECTOR
...: TP100 NT;
...: TP101 NT;''']
In [11]: d = {}
...: for s in lst:
...: for typelist in s.split('\n\n'):
...: Type, *elements = typelist.split('\n')
...: for element in elements:
...: name = element.strip().split()[0]
...: d[name] = Type
...:
In [12]: d
Out[12]:
{'C500': 'CAPACITOR',
'C501': 'CAPACITOR',
'R100': 'RESISTOR',
'R101': 'RESISTOR',
'C507': 'CAPACITOR',
'TP100': 'CONNECTOR',
'TP101': 'CONNECTOR'}
假设格式与显示的格式完全相同,它只是一个拆分序列和一个字典:
In [10]: lst = [
...: '''CAPACITOR
...: C500 1u PN"1";
...: C501 1u PN"2";
...:
...: RESISTOR
...: R100 10 PN"10";
...: R101 10 PN"11";''',
...:
...: '''CAPACITOR
...: C500 1u PN"1";
...: C507 1u PN"2";
...:
...: CONNECTOR
...: TP100 NT;
...: TP101 NT;''']
In [11]: d = {}
...: for s in lst:
...: for typelist in s.split('\n\n'):
...: Type, *elements = typelist.split('\n')
...: for element in elements:
...: name = element.strip().split()[0]
...: d[name] = Type
...:
In [12]: d
Out[12]:
{'C500': 'CAPACITOR',
'C501': 'CAPACITOR',
'R100': 'RESISTOR',
'R101': 'RESISTOR',
'C507': 'CAPACITOR',
'TP100': 'CONNECTOR',
'TP101': 'CONNECTOR'}
lst=['电容器\n C500 1u PN1;\n C501 1u PN2;\n\nRestor\n R100 10 PN10;\n R101 10 PN11;\n','\n电容器\n C500 1u PN1;\n C507 1u PN2;\n\n连接器\n TP100 NT;']应有望将'[“电容器\n C500 1u PN1;\n C501 1u PN2;\n\nRestor\n R100 10 PN10;\n R101 10 PN11;\n',”\n电容器\n C500 1u PN1;\n C507 1u PN2;\n\n连接器\n TP100 NT;\n TP101 NT;“]应有望改为“或”
In [10]: lst = [
...: '''CAPACITOR
...: C500 1u PN"1";
...: C501 1u PN"2";
...:
...: RESISTOR
...: R100 10 PN"10";
...: R101 10 PN"11";''',
...:
...: '''CAPACITOR
...: C500 1u PN"1";
...: C507 1u PN"2";
...:
...: CONNECTOR
...: TP100 NT;
...: TP101 NT;''']
In [11]: d = {}
...: for s in lst:
...: for typelist in s.split('\n\n'):
...: Type, *elements = typelist.split('\n')
...: for element in elements:
...: name = element.strip().split()[0]
...: d[name] = Type
...:
In [12]: d
Out[12]:
{'C500': 'CAPACITOR',
'C501': 'CAPACITOR',
'R100': 'RESISTOR',
'R101': 'RESISTOR',
'C507': 'CAPACITOR',
'TP100': 'CONNECTOR',
'TP101': 'CONNECTOR'}