在python中选择两个最小键

Tru*_*ran 2 python lambda dictionary

有人可以帮我选择两个键之间的最小值吗?例如,如果我有字典列表:

results = [
  {
    "model": "short",
    "score": 34,
    "alt_score": 1
  }, 
  {
    "model": "med",
    "score": 22,
    "alt_score": 11
  }, 
  {
    "model": "tall",
    "score": 42,
    "alt_score": 90
  }, 
  {
    "model": "xtall",
    "score": 83,
    "alt_score": 15
  }, 
]
Run Code Online (Sandbox Code Playgroud)

我想选择scoreOR 最小的字典alt_score.我知道如何找到最小scorealt_score单独的字典:

min(results, key=lambda x:x['alt_score'])

但我不确定如何一次看两个键.我需要这样的东西:

min(results, key=lambda x:x['score', 'alt_score])

要么

min(results, key=lambda x:x['score'] or x:x['alt_score'])

结果应该返回:

{
  "model": "short",
  "score": 34,
  "alt_score": 1
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Amb*_*ber 6

min(results, key=lambda x:min(x['score'], x['alt_score']))
Run Code Online (Sandbox Code Playgroud)

Lambdas可以在其中包含几乎任何表达式,包括内部调用min()以获得该项目的较小者,score或者alt_score.