获取对象列表中具有最大属性值的对象列表

时间:2017-02-10 22:27:10

标签: python list attributes max

previous questions略有不同。我在这里找到: front_Ar是具有score属性的对象列表。

我正在尝试获取得分最高的所有对象的列表。 我试过了:

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

只存储了一个对象(可能是它找到的第一个对象)。 知道如何做到这一点?

2 个答案:

答案 0 :(得分:3)

首先找到最高分,然后根据该分数过滤列表:

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

答案 1 :(得分: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))