Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何对字符串列表中的组件进行分类_Python_Python 2.7 - Fatal编程技术网

Python 如何对字符串列表中的组件进行分类

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=[ 电容器 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;\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'}