Python dict对对象求和的求和

汤姆·卡里克

给定这样的设置:

class Foo():
   state = 'x'
   amount = 1


a = Foo()
b = Foo()
c = Foo()
c.state = 'y'
foos = [a, b, c]

我想得到一个具有keys = object.state,values =的字典sum(object.amounts of objects with that state)在这种情况下:

{'x': 2, 'y': 1}

我想自动执行此操作,因此不需要提前知道不同的可能状态。

当然,我可以像这样无聊地迭代:

my_dict = {}
for foo in foos:
    try:
        my_dict[foo.state] += foo.value
    except (KeyError, TypeError):
        my_dict[foo.state] = foo.value 

但是,这有点冗长,我想知道是否有更好的方法可以做到,例如对dict的理解等等,但是到目前为止,我的努力是徒劳的。

铁拳

怎么样Counter

>>> from collections import Counter
>>>
>>> foos = [a,b,c]
>>> 
>>> c = Counter()
>>> for x in foos:
        c[x.state] += x.amount


>>> c
Counter({'x': 2, 'y': 1})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Python中以类似dict的结构求和耦合值?

来自分类Dev

使用折叠对对象属性列表求和

来自分类Dev

对对象数组 Angular 中的属性求和

来自分类Dev

对JSON对象求和并在Python中获取JSON文件

来自分类Dev

python中的求和评估

来自分类Dev

Python:大量求和

来自分类Dev

Python的双重求和

来自分类Dev

python中的嵌套求和

来自分类Dev

Python字典的求和值

来自分类Dev

python中的分层求和

来自分类Dev

Python求和随机整数

来自分类Dev

python中的映射求和

来自分类Dev

如何对值求和,python

来自分类Dev

对对象流中的每个字段求和

来自分类Dev

如何对对象数组中相同字段的值求和?

来自分类Dev

如何对对象数组中的值进行分组和求和?

来自分类Dev

使用reduce对对象数组中的值求和

来自分类Dev

如何使用AngularJs对对象数组中的属性值求和

来自分类Dev

使用Streams API根据字段值对对象求和

来自分类Dev

如何对对象的值求和并将其推入数组

来自分类Dev

按属性对对象数组进行分组并对值求和

来自分类Dev

如何进入状态数组并对对象的道具求和?

来自分类Dev

python数据框上的条件求和

来自分类Dev

用于条件求和的Python代码

来自分类Dev

Python熊猫-装箱和求和

来自分类Dev

Python瓶请求和unicode

来自分类Dev

Python请求和Json for循环

来自分类Dev

简单求和的Python舍入错误

来自分类Dev

组合求和python递归范围