繁体   English   中英

如何在字典列表中获取具有最高值的字典

[英]How to get the dictionary with the highest value in a list of dicts

我有一个字典列表。 是否可以获得具有最高得分键值的字典或其索引? 这是列表:

 lst = [{'name': 'tom', 'score': 5}, 
        {'name': 'jerry', 'score': 10},
        {'name': 'jason', 'score': 8}]

它应该返回:

{'name': 'jerry', 'score': 10}

使用lambda作为maxkey参数的替代方法是operator.itemgetter

from operator import itemgetter
max(lst, key=itemgetter('score'))

内置 function, max()采用可选key function,可以以lambda的形式提供:

>>> max(lst, key=lambda x:x['score'])
{'score': 10, 'name': 'jerry'}

我的首选方法是使用 lambda 来提取分数:

>>> lst= [{'name':'tom','score':5},{'name':'jerry','score':10},{'name':'jason','score':8}]
>>> max(lst, key=lambda d: d['score'])
{'score': 10, 'name': 'jerry'}
lst= [{'name':'tom','score':5},{'name':'jerry','score':10},{'name':'jason','score':8}]

print max(lst, key=lambda x: x['score'])

暂无
暂无

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

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