Предоставлена установка так:Python ДИКТ понимание суммируя от объектов
class Foo():
state = 'x'
amount = 1
a = Foo()
b = Foo()
c = Foo()
c.state = 'y'
foos = [a, b, c]
Я хочу, чтобы получить Dict, который имеет ключи = object.state
, значение = 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 постижений или что-то, но мои усилия до сих пор были напрасны.
Где находится 'foo.type'? –
К сожалению, исправлено, было из старой версии. –