繁体   English   中英

如何在一个dicts列表中获得具有公共密钥最大值的整个dict

[英]How to get whole dict with max value of a common key in a list of dicts

我有一个如下所示的词典列表:

lod = [
{'name': 'Tom', 'score': 60},
{'name': 'Tim', 'score': 70},
{'name': 'Tam', 'score': 80},
{'name': 'Tem', 'score': 90}
]

我想获得{'name': 'Tem', 'score':90}但我只能在下面做:

max(x['score'] for x in lod)

这只返回值90

我怎样才能获得整个字典?

你可以使用max关键功能

>>> lod = [
... {'name': 'Tom', 'score': 60},
... {'name': 'Tim', 'score': 70},
... {'name': 'Tam', 'score': 80},
... {'name': 'Tem', 'score': 90}
... ]
... 
>>> max(lod, key=lambda x: x['score'])
{'name': 'Tem', 'score': 90}

只需将您的列表传递给max ,如下所示:

>>> from operator import itemgetter
>>> lod = [
... {'name': 'Tom', 'score': 60},
... {'name': 'Tim', 'score': 70},
... {'name': 'Tam', 'score': 80},
... {'name': 'Tem', 'score': 90}
... ]
>>> max(lod, key=itemgetter('score'))
{'score': 90, 'name': 'Tem'}

我不知道sorting是否耗时,

>>>sorted(lod, key=lambda x:x['score'])[-1]
{'name': 'Tem', 'score': 90}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM