用于调用列表中的一组对象的正确语法?

时间:2016-07-28 00:50:39

标签: python

我有一个包含1000个项目的列表,但只想调用它们中的某个范围。

class myClass():

    def event(self):
        #do stuff


my_list = [myClass(i) for i in range(1000)]

#incorrect part:
my_list[0 - 10].event()

意思是我试图仅为前9个对象调用“event”。写这个的正确方法是什么?

2 个答案:

答案 0 :(得分:6)

这样做:

for obj in my_list[:9]:
    obj.event()

注意,因为你只想要调用前9个对象,你需要使用索引0-8,即0,1,2,3,4,5,6,7,8

答案 1 :(得分:3)

[x.event() for x in my_list[:9]]

list(map(lambda x: x.event(), my_list[:9]))

或者,正如@khredos建议的那样,

for obj in my_list[:9]:
    obj.event()

如果myClass.event()确实返回了某些内容(并且您希望保留结果),则第一个是最pythonic。另一方面,如果myClass.event()涉及副作用(当然你不想保留结果),那么请选择第三种方法。