朋友们
我陷入了列表问题列表。我在下面的列表类型中包含['Score','title','ID']
[[0.6428571428571429, 'Software QA', 2089],
[0.7428571428571429, 'Software Developer', 2086],
[0.75, 'Software Tester', 2004],
[0.7428571428571429, 'Software Developer', 2004],
[0.7428571428571429, 'Software Developer', 1958],
[0.7428571428571429, 'Software Developer', 1954],
[0.7428571428571429, 'Software Developer', 2133],
[0.7428571428571429, 'Software Developer', 2153],
[0.7428571428571429, 'Software Developer', 2152],
[0.9411764705882353, 'Software Engineer', 1107],
[0.7058823529411765, 'Software Devloper', 2133],
[0.7058823529411765, 'Software Devloper', 2153],
[0.7058823529411765, 'Software Devloper', 2152],]
现在我想比较ID,如果它们相似则需要给出分数更高的条件
我尝试了以下一个元素代码:
if cleanlist[2][2] == cleanlist[i][2]:
if cleanlist[2][0] > cleanlist[i][0]:
print (cleanlist[2])
else:
print(cleanlist[i])
如何循环执行并获得带有分数的唯一ID
需求输出如下:
[[0.6428571428571429, 'Software QA', 2089],
[0.7428571428571429, 'Software Developer', 2086],
[0.75, 'Software Tester', 2004],
[0.7428571428571429, 'Software Developer', 1958],
[0.7428571428571429, 'Software Developer', 1954],
[0.7428571428571429, 'Software Developer', 2133],
[0.7428571428571429, 'Software Developer', 2153],
[0.7428571428571429, 'Software Developer', 2152],
[0.9411764705882353, 'Software Engineer', 1107],]
如果您不介意输出顺序,可以使用它
from collections import defaultdict
def sort_it(list_):
res = defaultdict(list)
for i, j, k in sorted(list_):
res[k] = [i, j]
return [[value[0], value[1], key] for key, value in res.items()]
如果您希望按照ID对其进行排序,则只需对其重新排序
sorted(sort_it(test_list), key=lambda x: x[-1])
工作:首先根据得分对输入列表进行排序,然后将值馈送到以ID为键的字典,并将其值保留在列表中,如果ID值重复出现,则将其替换为比以前更大的新值,然后将其重新转换为列表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句