我有一系列的配对(名字,分数),有重复出现的名字。我想得到每个名字的最高分数。对于最终结果,名称标签本身是可选的。这是一个有效的实现:
from collections import defaultdict
scores = (('eyal', 76), ('alex', 50), ('oded', 90), ('eyal', 100), ('alex', 99))
distinct = defaultdict(set)
for score in scores:
distinct[score[0]].add(score[1])
max_scores = [max(distinct[k]) for k in distinct]
print (max_scores)
我想知道,用字典理解能一步到位吗?在
这是基于这样一个观察:一旦我们对元组进行排序,我们只想为每个名称保留最后一个元组,
dict()
就很好地做到了这一点。在或者
^{pr2}$这是更详细,但也更一般。例如,它可以很容易地用于计算平均得分,而第一个解决方案则不能
相关问题 更多 >
编程相关推荐