小编典典

在Dicts列表中,找到一个公共Dict字段的min()值

python

我有这样的词典列表:

[{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

我想找到min()和max()价格。现在,我可以使用带有lambda表达式的键(在另一篇SO文章中找到)轻松地对它进行排序,因此,如果没有其他方法,我就不会陷入困境。但是,据我所见,Python中几乎总是有直接方法,因此这是我学习更多知识的机会。


阅读 162

收藏
2020-12-20

共1个答案

小编典典

有几种选择。这是简单明了的一个:

seq = [x['the_key'] for x in dict_list]
min(seq)
max(seq)

[编辑]

如果只想遍历列表一次,则可以尝试执行此操作(假设值可以表示为ints):

import sys

lo,hi = sys.maxint,-sys.maxint-1
for x in (item['the_key'] for item in dict_list):
    lo,hi = min(x,lo),max(x,hi)
2020-12-20