查找 OrderedDict 列表中项目的最低值

问题描述 投票:0回答:2

我有一个 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)])
python dictionary ordereddictionary
2个回答
2
投票

只需将

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")))

1
投票

使用

min()
函数并定义
key
属性函数

min(list_of_dict, key=lambda x: x['time'])
© www.soinside.com 2019 - 2024. All rights reserved.