Skip to main content
 首页 » 编程设计

python之按键分组字典后获取字典列表中最大值的项目

2025年05月04日10jiqing9006

我有一个看起来像这样的字典列表:

[{'apples': 99}, {'bananas': '556685'}, {'apples': 88}, {'apples': '2345566'}] 

我想按键对项目进行分组并返回具有最高值的项目的键?即总结所有苹果的值(value)并总结所有香蕉的值(value)广告返回较高的 - 苹果或香蕉我似乎无法找到这样做的好方法并且我试图避免使用一堆循环和计数器变量。

(出于好奇,这是否可能作为单线?如果可以,怎么做?)

请您参考如下方法:

将所有值更改为整数后:

import itertools as it 
 
a = [{'apples': 99}, {'bananas': 556685}, {'apples': 88}, {'apples': 2345566}] 
 
 
max((sum(i.values()[0] for i in v), k) for k,v in it.groupby(sorted(a), key=lambda x: x.keys()[0]))[1] 
 
# 'apples' 

如果你删除尾随的 [1],它会给你相等的总和:

# (2345753, 'apples')