如何在列表中获取具有最高分数的项目

时间:2015-05-06 11:40:53

标签: python list python-2.7 python-3.x

我有这个清单:

lista = [([('autorità', 'S'), ('competente', 'A')], 580.0), ([('legislazione', 'S'), ('nazionale', 'A')], 313.0), ([('età', 'S'), ('minima', 'A')], 130.0), ([('prassi', 'S'), ('nazionale', 'A')], 121.0), ([('autorità', 'S'), ('competenti', 'A')], 116.0), ([('revisione', 'S'), ('totale', 'A')], 112.0), ([('lavoro', 'S'), ('forzato', 'A')], 110.0), ([('cure', 'S'), ('mediche', 'A')], 94.0), ([('paragrafo', 'S'), ('precedente', 'A')], 92.0), ([('proposte', 'S'), ('relative', 'A')], 79.0), ([('formazione', 'S'), ('professionale', 'A')], 76.0), ([('organizzazioni', 'S'), ('rappresentative', 'A')], 76.0), ([('lavoratori', 'S'), ('interessati', 'A')], 74.0), ([('convenzione', 'S'), ('internazionale', 'A')], 71.0)]

为每个单词的二元组分配一个分数,列表中的项目按其分数排序。

如何获得列表中具有最大值的前5个项目?

3 个答案:

答案 0 :(得分:0)

max_ngrams, max_value = ([('autorità', 'S'), ('competente', 'A')], 580.0)

所以

max_value = 580.0

没有其他的二重奏得分高,所以你只能得到这个

是正常的

答案 1 :(得分:0)

我认为你正在寻找这样的东西:

lista = [([('autorità', 'S'), ('competente', 'A')], 580.0), ([('legislazione', 'S'), ('nazionale', 'A')], 313.0), ([('età', 'S'), ('minima', 'A')], 130.0), ([('prassi', 'S'), ('nazionale', 'A')], 121.0), ([('autorità', 'S'), ('competenti', 'A')], 116.0), ([('revisione', 'S'), ('totale', 'A')], 112.0), ([('lavoro', 'S'), ('forzato', 'A')], 110.0), ([('cure', 'S'), ('mediche', 'A')], 94.0), ([('paragrafo', 'S'), ('precedente', 'A')], 92.0), ([('proposte', 'S'), ('relative', 'A')], 79.0), ([('formazione', 'S'), ('professionale', 'A')], 76.0), ([('organizzazioni', 'S'), ('rappresentative', 'A')], 76.0), ([('lavoratori', 'S'), ('interessati', 'A')], 74.0), ([('convenzione', 'S'), ('internazionale', 'A')], 71.0)]

max_value = 0

count = 0

for index,value in enumerate(lista):

    if value[1]> max_value:

        max_value = value[1]

        count = index

print lista[count]

答案 2 :(得分:0)

您的列表已按降序排序。所以只需将列表切片以获得前五名:

>>> lista[:5]
    [([('autorit\xc3\xa0', 'S'), ('competente', 'A')], 580.0), ([('legislazione', 'S'), ('nazionale', 'A')], 313.0), ([('et\xc3\xa0', 'S'), ('minima', 'A')], 130.0), ([('prassi', 'S'), ('nazionale', 'A')], 121.0), ([('autorit\xc3\xa0', 'S'), ('competenti', 'A')], 116.0)]

如果你想要他们没有得分:

>>> [x[0] for x in lista[:5]]
[[('autorit\xc3\xa0', 'S'), ('competente', 'A')], [('legislazione', 'S'), ('nazionale', 'A')], [('et\xc3\xa0', 'S'), ('minima', 'A')], [('prassi', 'S'), ('nazionale', 'A')], [('autorit\xc3\xa0', 'S'), ('competenti', 'A')]]