2017-02-10 11 views
1

Немного отличается от previous questions. Я нашел здесь: front_Ar - это список объектов с атрибутом score.Получить список объектов с максимальным значением атрибута в списке объектов

Я пытаюсь получить список всех объектов с самым высоким счетом. Я пробовал:

maxind = [] 
maxInd.append(max(front_Ar, key=attrgetter('score'))) 

, который хранится только один объект (предположительно первый он нашел). Любая идея, как это можно сделать?

ответ

3

Найти максимальный балл, а затем фильтровать список, основанный на этот счет:

max_score = max(front_Ar, key=attrgetter('score')).score 
max_ind = [obj for obj in front_Ar if obj.score == max_score] 
0

max() функция может быть использована, чтобы найти значение самого высокого балла.

Чтобы получить объекты, чей балл соответствует этому значению, вы можете сделать понимание списка, как в ответ на @ juanpa.arrivillaga, или использовать что-то вроде filter() в списке, чтобы возвращать только элементы, соответствующие вашему критерию.

top_score = max(front_Ar, key=attrgetter('score')).score 
max_ind = list(filter(lambda x: x.score == top_score, front_Ar)) 

 Смежные вопросы

  • Нет связанных вопросов^_^