簡體   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