如何对字典中相同键的值求和? [英] How to sum values of the same key in a dictionary?

查看:1013
本文介绍了如何对字典中相同键的值求和?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我的字典是:mydict = [{"red":6}, {"blue":5}, {"red":12}]

这是我到目前为止所做的:

This is what I've done so far:

for key, value in mydict() :
    if key == mydict.keys():
        key[value] += value
    else:
        print (key, value)

我认为我做得不太正确(被卡住了几个小时),但是我希望输出看起来像这样:

I don't think I'm getting it quite right (been stuck for hours), but I want the output to look like this:

blue 5
red 18

red 18
blue 5

推荐答案

我不建议这样做,因为它会导致设计混乱:

I do not recommend this since it results a messy design:

class MyDict(dict):

    def __setitem__(self, key, value):
        if key in self:
            super().__setitem__(key, self[key] + value)
        else:
            super().__setitem__(key, value)

>>> d = MyDict({'red': 6, 'blue': 5})
>>> d['red'] = 12
>>> d
{'red': 18, 'blue': 5}
>>> d['blue']
5
>>> d['red']
18
>>> d['red'] = 8
>>> d
{'red': 26, 'blue': 5}

我看到您更改了初始对象...

I see you changed the initial object...

>>> mydict = [{"red":6}, {"blue":5}, {"red":12}]
>>> sum(d.get('red', 0) for d in mydict)
18

这篇关于如何对字典中相同键的值求和?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆