如何在dict列表中用一个公共键的最大值得到整个dict

2024-03-29 07:04:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个单子如下:

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。你知道吗

我怎样才能得到完整的词典?你知道吗


Tags: nameinformax词典单子scoretim
3条回答

我不知道sorting是否耗时

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

您可以使用maxkey function

>>> 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'}

相关问题 更多 >