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

时间:2017-02-02 22:18:54

标签: python object minimum

我有一个这样的清单:

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

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

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

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

  

{'价格':2,'金额':}}

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

2 个答案:

答案 0 :(得分:6)

key功能使用min

from operator import itemgetter

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

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

答案 1 :(得分: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}
>>>