我有像这样的简单课程
class MyClass():
def test(self):
print "Calling Test"
然后我创建一个列表:
lobj=[MyClass() for i in range (100)]
现在我想迭代lobj
中的每个对象并调用它的方法test()
。
我知道我可以使用for
循环。但是,我想知道是否还有其他方法(只是为了避免列表相对较大时的for循环)?例如
lobj[:].test()
答案 0 :(得分:5)
...我想知道是否还有其他方法(只是为了避免在列表相对较大时使用for循环)?
是即可。您可以使用内置函数map()
和lambda函数。如果您只想在每个元素上调用方法,请执行:
map(lambda x:x.test(), lobj)
如果您想将结果存储在列表中:
v = map(lambda x:x.test(), lobj)
答案 1 :(得分:3)
你能做的最好的事情是:
[i.test() for i in lobj]
这会调用该方法但不会将结果存储在任何位置,因此在完成调用所有实例的方法后,列表将被丢弃。