我有一个 OrderedDict,每个键都有多个值。
list_of_dict =
[OrderedDict([('time', 0.18), ('dist', 92.61), ('x', True)]),
OrderedDict([('time', 0.92), ('dist', 92.10), ('x', True)]),
OrderedDict([('time', 1.45), ('dist', 92.79), ('x', False)])]
需要返回list_of_dict中所有orderedDict中时间最少的字典。
示例 - list_of_dict[0][time] 在剩余字典中最低,因此需要返回整个
OrderedDict([('time', 0.18), ('dist', 92.61), ('x', True)])
只需将
min()
函数与 key
用作 lambda
。
from collections import OrderedDict
list_of_dict = [
OrderedDict([("time", 1.45), ("dist", 92.79), ("x", False)]),
OrderedDict([("time", 0.18), ("dist", 92.61), ("x", True)]),
OrderedDict([("time", 0.92), ("dist", 92.10), ("x", True)]),
]
print(min(list_of_dict, key=lambda x: x["time"]))
您还可以使用
itemgetter
代替 lambda。
from collections import OrderedDict
from operator import itemgetter
list_of_dict = [
OrderedDict([("time", 1.45), ("dist", 92.79), ("x", False)]),
OrderedDict([("time", 0.18), ("dist", 92.61), ("x", True)]),
OrderedDict([("time", 0.92), ("dist", 92.10), ("x", True)]),
]
print(min(list_of_dict, key=itemgetter("time")))
使用
min()
函数并定义 key
属性函数
min(list_of_dict, key=lambda x: x['time'])