我有一个包含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”。写这个的正确方法是什么?
答案 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()
涉及副作用(当然你不想保留结果),那么请选择第三种方法。