我在 python 中有两个带有元素的列表。我想在这两个列表中执行一些检查。我的清单如下:
list_A = [["'EASY'", "'LEVEL_C'", "'4'", '0.714', '\n'], ["'EASY'", "'LEVEL_D'", "'5'", '0.778', '\n'], ["'EASY'", "'LEVEL_D'", "'5'", '0.226', '\n'], ["'EASY'", "'LEVEL_D'", "'5'", '0.222', '\n'], ...]
list_B = [["'EASY'", "'LEVEL_B'", "'2'", '1.000', '\n'], ["'EASY'", "'LEVEL_C'", "'3'", '1.000', '\n'], ["'EASY'", "'LEVEL_D'", "'4'", '1.000', '\n'], ["'EASY'", "'LEVEL_D'", "'4'", '0.290', '\n'], ...]
对于变量“EASY”和采用值 (LEVEL_A - LEVEL_F) 的变量级别,有第三个变量对应于分数 (1-6) 和置信变量 (0-1)。我想要做的是比较变量 easy 和 level 的两个列表,并在所有情况下找出两个列表(list_A 和 list_B)中哪个得分更高以及哪个信心更高。我怎么能这样做?
我构建规则的方式,一开始我从可执行文件中获取行并将它们过滤到列表中。我的列表的向量示例如下:
Rule: ('EASY', 'LEVEL_E') ==> ('4') , 0.182
'EASY' 'LEVEL_E' '4' 0.182
["'EASY'", "'LEVEL_E'", , "'4'", '0.182', '\n']
以及我用于创建向量的代码:
for row in my_lines:
print row
row = re.sub('[()]', "", row)
row = row.replace("Rule: ", "")
row = row.replace(",", "")
row = row.replace("==>", "")
print row
split = re.split(r' +', row)
print split
然后,一旦我创建了我的列表,我就用对应于变量 Level 的第二个元素对它们进行排序:
list_A.sort(key=lambda x: x[1])
list_B.sort(key=lambda x: x[1])
编辑:我已经用变量级别对列表进行了排序。现在我想比较关于所有变量级别的分数的两个列表。当一个级别不存在时,分数为零,当相同的分数存在两次时,系统应该选择具有最高置信度的那个。如何比较变量级别的所有可能值?
我的问题的最终解决方案是仅对字符串使用简单的排序来对列表进行排序,然后压缩两个列表以便能够执行比较。使用的代码如下:
list_A.sort(key=lambda x: x[1])
list_B.sort(key=lambda x: x[1])
res = zip(list_A, list_B)
但是,在上一个答案中提出的字典解决方案似乎比使用列表更有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句