我有一个这样的清单:
list = [
{'price': 2, 'amount': 34},
{'price': 7, 'amount': 123},
{'price': 5, 'amount': 495}
]
如何在python中获取具有特定键的最小/最大值的对象? 有了这个,我可以得到最小值:
min(obj['price'] for obj in list) # 2
但我想要的是一个完整的对象
{'价格':2,'金额':}}
我怎样才能做到这一点?有没有foreach等的简单方法?
答案 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}
>>>