Добавление переменных экземпляра объекта класса
Я хочу суммировать переменную экземпляра объекта класса в списке этого объекта класса.
Class A(object):
def __init__(self):
self.a = 20
B = []
for i in range(10):
B.append(A())
# Can this be made more pythonic?
sum = 0
for i in B:
sum += i.a
Я думал о том, чтобы использовать функцию карты или что-то в этом роде? Не знаю, толкает ли это слишком много, хотя. Просто любопытно.
2 ответа
Решение
Ты можешь использовать reduce
reduce(lambda acc, c: acc + c, [i.a for i in B])
или же sum()
с пониманием
sum([i.a for i in B])
class A(object):
def __init__(self):
self.a = 20
B = []
for i in range(10):
B.append(A())
s = sum(i.a for i in B)
print s
работает.