a = [['6-6', 'V MIN', 'V MAX'], ['6-6', 'C MIN', 'C MAX'], ['4-4', 'V MIN', 'V MAX'], ['4-4', 'C MIN', 'C MAX']]
a列表为已知条件,
b = [['Sec', '6-6'],
['', 'A', 'N', 'D', '+T', '-T', 'O'],[''],
['V MIN', '-0.049', '0.000', '-0.049', '0.075', '-0.075', '-*-------'],
['V MAX', '0.022', '0.000', '0.022', '0.075', '-0.075', '-----*---'],
['C MIN', '-0.065', '0.000', '-0.065', '0.075', '-0.075', '*--------'],
['C MAX', '0.001', '0.000', '0.001', '0.075', '-0.075', '----*----']
['r', '0.001', '0.000', '0.001', '0.075', '-0.075', '----*----']
['ch', '0.001', '0.000', '0.001', '0.075', '-0.075', '----*----'],[''],
['Sec', '4-4'],
['', 'A', 'N', 'D', '+T', '-T', 'O'],[''],
['V MIN', '-0.049', '0.000', '-0.049', '0.075', '-0.075', '-*-------'],
['V MAX', '0.020', '0.000', '0.020', '0.075', '-0.075', '-----*---'],
['C MIN', '-0.014', '0.000', '-0.014', '0.075', '-0.075', '---*-----'],
['C MAX', '0.025', '0.000', '0.025', '0.075', '-0.075', '-----*---']]
['r', '0.001', '0.000', '0.001', '0.075', '-0.075', '----*----']
['ch', '0.001', '0.000', '0.001', '0.075', '-0.075', '----*----']]
想要提取b列表中V MIN', 'V MAX和C MIN', 'C MAX这一行,‘D’这一列的数字,也就是-0.049,'0.022,'-0.065,'0.001,-0.049,0.020,-0.014,0.025,我该如何用已知的条件得到b列表中的数呢?
可以用列表解析,先将a中要求的数据放到一个列表,再用列表解析做二次过滤,代码如下:
b = [['Sec', '6-6'],...]
a = [['6-6', 'V MIN', 'V MAX'], ['6-6', 'C MIN', 'C MAX'], ['4-4', 'V MIN', 'V MAX'], ['4-4', 'C MIN', 'C MAX']]
s = []
for a1 in [l[1:] for l in a]:
for a2 in a1:s.append(a2)
b2 =[e[1] for e in b if e[0] in s]
print(b2)
关于列表解析请参考:https://blog.csdn.net/LaoYuanPython/article/details/90084269