如何从OrderedDict列表中返回time值最小的OrderedDict
找出OrderedDict列表中time值最小的元素
问题描述
给定一个包含多个OrderedDict的列表,每个字典都包含time等键值对,需要返回列表中time值最小的完整OrderedDict。
示例输入:
from collections import 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)]) ]
示例输出:
OrderedDict([('time', 0.18), ('dist', 92.61), ('x', True)])
解决方案
直接使用Python内置的min()函数,通过key参数指定比较依据为每个OrderedDict的time值即可:
from collections import 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)]) ] min_dict = min(list_of_dict, key=lambda d: d['time']) print(min_dict)
说明
min()函数会遍历列表中的每一个OrderedDict,通过lambda d: d['time']提取每个元素的time值作为比较基准,最终返回time值最小的完整OrderedDict。如果存在多个time值相同的最小元素,min()会返回第一个遇到的元素。
内容的提问来源于stack exchange,提问作者Thomas Deepak Konreddy
相关产品推荐
相关产品推荐

