我有一个字典结果元组。
result = ({'name': 'xxx', 'score': 120L }, {'name': 'xxx', 'score': 100L}, {'name': 'yyy', 'score': 10L})
我想将其统一。统一操作后result = ({'name': 'xxx', 'score': 120L }, {'name': 'yyy', 'score': 10L})
The result
仅包含one dictionary
每个name
和dict
应该有maximum score
。最终结果应该采用相同的格式,即字典元组。
from operator import itemgetter
names = set(d['name'] for d in result)
uniq = []
for name in names:
scores = [res for res in result if res['name'] == name]
uniq.append(max(scores, key=itemgetter('score')))
我确信有一个更短的解决方案,但是您将无法避免首先以某种方式按名称过滤分数,然后找到每个名称的最大值。
在这里,将分数存储在以名称作为键的字典中肯定是更好的选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)