【发布时间】:2016-04-22 22:24:04
【问题描述】:
我想从字典列表中获取 'cost' 键值最低的字典,然后从该字典中删除其他键值对
lst = [{'probability': '0.44076116', 'cost': '108.41'} , {'probability': '0.55923884', 'cost': '76.56'}]
【问题讨论】:
标签: list python-3.x dictionary
我想从字典列表中获取 'cost' 键值最低的字典,然后从该字典中删除其他键值对
lst = [{'probability': '0.44076116', 'cost': '108.41'} , {'probability': '0.55923884', 'cost': '76.56'}]
【问题讨论】:
标签: list python-3.x dictionary
您可以为min() 内置函数提供自定义key 函数:
>>> min(lst, key=lambda item: float(item['cost']))
{'cost': '76.56', 'probability': '0.55923884'}
或者,如果您只需要一个最小成本值本身,您可以从成本值列表中找到一个最小成本值:
costs = [float(item["cost"]) for item in lst]
print(min(costs))
【讨论】:
cost:min(lst, key=lambda item: float(item['cost']))["cost"]..如果我理解这部分正确的话。谢谢。
@alecxe 的解决方案简洁而简短,为他 +1。这是我的做法:
>>> dict_to_keep = dict()
>>> min=1000000
>>> for d in lst:
... if float(d["cost"]) < min:
... min = float(d["cost"])
... dict_to_keep = d
...
>>> print (dict_to_keep)
{'cost': '76.56', 'probability': '0.55923884'}
【讨论】: