如何对字典中相同键的值求和?

2024-01-06

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

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

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

我认为我做得不太正确(被困了几个小时),但我希望输出如下所示:

blue 5
red 18

or

red 18
blue 5

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

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}

编辑:我看到你改变了初始对象......

>>> mydict = [{"red":6}, {"blue":5}, {"red":12}]
>>> sum(d.get('red', 0) for d in mydict)
18
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何对字典中相同键的值求和? 的相关文章

随机推荐