在按键分组字典后,获取具有最大值的项目

Mri*_*lla 1 python

我有一个如下所示的dicts列表:

[{'apples': 99}, {'bananas': '556685'}, {'apples': 88}, {'apples': '2345566'}]
Run Code Online (Sandbox Code Playgroud)

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

(出于好奇,这可能是一个单行程?如果是这样,怎么样?)

eum*_*iro 5

将所有值更改为整数后:

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'
Run Code Online (Sandbox Code Playgroud)

如果你删除尾随[1],它将给你甚至总和:

# (2345753, 'apples')
Run Code Online (Sandbox Code Playgroud)