2011-07-03 80 views

回答

8

內置功能,max()帶有一個可選key功能,它可以在一個lambda:

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

謝謝Johnsyweb :) – unice

+0

總是樂於幫助。 – Johnsyweb

3

我的優選方式的形式提供。將使用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'} 
2
lst= [{'name':'tom','score':5},{'name':'jerry','score':10},{'name':'jason','score':8}] 

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

於使用lambdakey參數的替代max,是operator.itemgetter

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