我有一個包含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個對象調用「事件」。寫這個的正確方法是什麼?
我有一個包含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個對象調用「事件」。寫這個的正確方法是什麼?
這樣做:
for obj in my_list[:9]:
obj.event()
注意,因爲你只是想被稱爲前9個對象,則需要使用索引0-8即0,1,2,3,4,5,6, 7,8-
[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()
涉及副作用(當然你不想保留結果),那麼請採用第三種方法。
請參閱http://stackoverflow.com/questions/509211/explain-pythons-slice-notation –