如何在python中获取特定键的对象最小/最大值?

joh*_*rfx 1 python object minimum

我有一个这样的列表:

list = [
    {'price': 2, 'amount': 34},
    {'price': 7, 'amount': 123},
    {'price': 5, 'amount': 495}
]
Run Code Online (Sandbox Code Playgroud)

如何在python中获取具有特定键的最小/最大值的对象?有了这个,我可以得到最小值:

min(obj['price']  for obj in list) # 2
Run Code Online (Sandbox Code Playgroud)

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

{'price':2,'金额':34}

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

Kas*_*mvd 6

使用key你的min函数:

from operator import itemgetter

min(my_list, key=itemgetter('price'))
Run Code Online (Sandbox Code Playgroud)

也不要使用python的内置关键字和/或数据结构名称作为变量和对象名称.它会通过遮蔽内置名称来混淆解释器.


Sim*_*sov 5

要添加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}
>>> 
Run Code Online (Sandbox Code Playgroud)