2013-04-03 97 views
0

我有一個非常大的1000+列表,我想從列表中刪除前319個元素。 我試圖從列表中刪除前幾個元素python

for i in range(0,320): 
    list1.pop(i) 

但是,這並不工作,但是當我做list1.pop(0)單獨它刪除元素 我怎麼能刪除前的319元

+0

如果您發現自己希望從列表的開頭刪除東西,最好使用['deque'](http://docs.python.org/3.3/library/collections.html#collections。相反,因爲它不需要在每次刪除時移動值。 – Adam

回答

2

使用del對切片:

del list1[:319] 

這將一次去除元素0 - 318(因此總共319個元素)。

+0

+1你打我幾秒我猜:) –

+0

如果我輸入足夠多的字符來通過最小長度過濾器,我會更快。 –

2

使用切片語法:

del list1[0:319] 

順便說一句,叫list1.pop反覆不起作用,因爲的項目每個刪除後重新索引。所以,當你刪除第一個項目時,下一個項目(這是第二個項目)成爲第一個項目。如果你真的想在循環中使用pop,你必須調用list1.pop(0) 319次 - 但這會非常低效。