迭代python列表对象并调用每个对象的方法

时间:2014-05-21 06:38:57

标签: python list

我有像这样的简单课程

class MyClass():
    def test(self):
      print "Calling Test"

然后我创建一个列表:

lobj=[MyClass() for i in range (100)]

现在我想迭代lobj中的每个对象并调用它的方法test()。 我知道我可以使用for循环。但是,我想知道是否还有其他方法(只是为了避免列表相对较大时的for循环)?例如

lobj[:].test()

2 个答案:

答案 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]

这会调用该方法但不会将结果存储在任何位置,因此在完成调用所有实例的方法后,列表将被丢弃。