我有一个A类,一个A实例的列表。类A有一个实例方法(funca),它只有另一个A实例的一个参数,并返回A实例。现在我想用"funca“来得到所有元素的结果。我的剧本是这样的:
b = a[0]
for a in alist[1:]:
b=b.funca(a)我觉得密码很难看。有更好的方法吗?(迭代什么的?)
发布于 2015-08-05 06:58:45
您实际上是根据列表链接A.funca()调用,生成调用:
alist[0].funca(alist[1]).funca(alist[2]).funca(alist[3])...funca(alist[-1])你可以用函数
from functools import reduce # Python 3 compatibility
result = reduce(lambda a, b: a.funca(b), alist)这在本质上与循环所做的相同,但只在一行中。
from functools import reduce导入函数来自Python 3位置。;在Python2中,它是内置函数之一。从Python2.6开始,它也可以在Python3位置上使用,以实现向前兼容性。
https://stackoverflow.com/questions/31825431
复制相似问题