获取对象列表中具有最大属性值的对象列表
问题描述:
与previous questions略有不同。我在这里找到: front_Ar
是具有score
属性的对象的列表。获取对象列表中具有最大属性值的对象列表
我想获得最高分的所有对象的列表。 我曾尝试:
maxind = []
maxInd.append(max(front_Ar, key=attrgetter('score')))
其中仅存储一个对象(推测它找到的第一个)。 任何想法如何做到这一点?
答
找到最高分,然后再筛选基于该评分列表:
max_score = max(front_Ar, key=attrgetter('score')).score
max_ind = [obj for obj in front_Ar if obj.score == max_score]
答
的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))