【发布时间】:2013-09-05 00:42:43
【问题描述】:
我想在一个类对象的列表中总结一个类对象的实例变量。
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
我正在考虑使用地图功能或其他东西?不知道这样是不是太过分了。只是好奇。
【问题讨论】:
-
sum(i.a for i in B)(参见:list comprehensions 和 generator expressions 的教程。) -
(尽管我不喜欢滥用“pythonic”这个词,但我认为列表推导显然比
map()和filter()更重要。) -
@millimoose..这实际上给了我一个 TypeError 说 'int' object is not callable
-
@Nitin 这可能是因为您的脚本中仍有
sum = 0。这说明了为什么将变量命名为sum是不好的。 -
@Nitin 错误不在我的建议中:ideone.com/Dx7v2I(
sum()是其中的内置函数,而不是您的变量。)
标签: python