当前位置: 首页 > 知识库问答 >
问题:

在字典项列表中查找min和max元素

华鹭洋
2023-03-14

我有一个以字典格式存储的元素列表

例如。

input_list = [ {'item1': 2, 'item2': 4, 'item3': 3, 'item4': 5, 'item5': 1, 'item6': 2, 'item7': 2, 'item8': 1, 'item9': 2, 'item10': 5, 'item11': 1, 'item12': 2},
  {'item1': 4, 'item2': 1, 'item3': 6, 'item4': 2, 'item5': 11, 'item6': 3, 'item7': 4, 'item8': 6, 'item9': 1, 'item10': 5, 'item11': 1, 'item12': 3}]
output_list_max = [{'item1': 4, 'item2': 4, 'item3': 6, 'item4': 5, 'item5': 11, 'item6': 3, 'item7': 4, 'item8': 6, 'item9': 2, 'item10': 5, 'item11': 1, 'item12': 3}]

output_list_min = [{'item1': 2, 'item2': 1, 'item3': 3, 'item4': 2, 'item5': 1, 'item6': 2, 'item7': 2, 'item8': 1, 'item9': 1, 'item10': 5, 'item11': 1, 'item12': 2}]

如有任何帮助,不胜感激,谢谢!

共有1个答案

牧献
2023-03-14

您可以使用zip()sorted()将字典项配对:

lst = list(zip(*[sorted(d.items()) for d in input_list]))

dict(max(item) for item in lst)
# {'item9': 2, 'item4': 5, 'item5': 11, 'item11': 1, 'item2': 4, 'item1': 4, 'item10': 5, 'item6': 3, 'item3': 6, 'item12': 3, 'item7': 4, 'item8': 6}

dict(min(item) for item in lst)
# {'item9': 1, 'item4': 2, 'item5': 1, 'item11': 1, 'item2': 1, 'item1': 2, 'item10': 5, 'item6': 2, 'item3': 3, 'item12': 2, 'item7': 2, 'item8': 1}
 类似资料:
  • 问题内容: 需要在某种类型的查找表中放入大约1000万个值,所以我想知道列表或字典哪个更有效? 我知道你可以为这两种方法执行以下操作: 和 我的想法是,该命令将更快,更高效。 谢谢你的帮助。 编辑1 我正在尝试做的更多信息。 欧拉问题92。我正在查找表,以查看计算出的值是否已经准备好了。 编辑2 查找效率。 编辑3 没有与值相关的值…那么集合会更好吗? 问题答案: 速度 关于数据结构中的项目数,列

  • 问题内容: 给定这个清单 我想根据字典值更改其和值: 因此列表变为: 问题答案: 如果所有值都是唯一的,那么您应该首先撤销dict以获得有效的解决方案: 如果您仅尝试更新所选索引,请尝试:

  • 问题内容: 我有一个清单“ a” 我需要找到一个特定数字的所有元组。说1 我怎么做? 问题答案: 如果只希望第一个数字匹配,则可以这样操作: 如果您仅搜索其中包含1的元组:

  • 我试图返回一系列流媒体数据的运行中值。为此,我使用了一个最大堆(它存储序列下半部分的值)和一个最小堆(它保存序列上半部分的数值)。 特别是,我使用的是来自heapq模块的Python(2.0)内置最小堆数据结构(https://docs.python.org/2/library/heapq.html). 相反,为了构建最大堆,我只需使用需要推入堆中的数字的负数。 我的Python代码如下: 下面是

  • 让我们假设我有一个这样的类: 我有一个

  • 问题内容: 在C / Objective- C中,可以使用MIN和MAX宏在两个数字之间找到最小值和最大值。Swift不支持宏,并且语言/基本库中似乎没有等效项。如果一个去同一个定制的解决方案,也许基于这样的泛型一个? 问题答案: 并且已经在Swift中定义: 请参阅有关Swift中已记录和未记录的内置函数的精彩文章。