2016-07-28 40 views
-1

我有一個包含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個對象調用「事件」。寫這個的正確方法是什麼?

+0

請參閱http://stackoverflow.com/questions/509211/explain-pythons-slice-notation –

回答

6

這樣做:

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

注意,因爲你只是想被稱爲前9個對象,則需要使用索引0-8即0,1,2,3,4,5,6, 7,8-

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()涉及副作用(當然你不想保留結果),那麼請採用第三種方法。