如何获取 python 中特定键的对象 minimum/maximum 值?

How to get object minimum/maximum value of specific key in python?

我有一个这样的列表:

list = [
    {'price': 2, 'amount': 34},
    {'price': 7, 'amount': 123},
    {'price': 5, 'amount': 495}
]

如何获取 python 中特定键的 minimum/maximum 值的对象? 有了这个我可以获得最小值:

min(obj['price']  for obj in list) # 2

但我想要得到的是一个完整的对象

{'price': 2, 'amount':34}

我怎样才能做到这一点?有没有不用foreach等的简单方法?

为您的 min 函数使用 key

from operator import itemgetter

min(my_list, key=itemgetter('price'))

也不要使用 python 的 built-in key-words and/or 数据结构名称作为变量和对象名称。它会通过隐藏 built-in 名称来混淆解释器。

要添加 Kasramvd 答案,您也可以使用 lambda 执行此操作。

>>> foo = [
...     {'price': 2, 'amount': 34},
...     {'price': 7, 'amount': 123},
...     {'price': 5, 'amount': 495}
... ]
>>> max(foo, key=lambda x: x['price'])
{'amount': 123, 'price': 7}
>>> min(foo, key=lambda x: x['price'])
{'amount': 34, 'price': 2}
>>>