2011-11-21 125 views
3

我想從列表中刪除子列表。我只知道起始索引和結束索引。我如何從列表中刪除?從列表中刪除子列表

我用下面的代碼:

def delete_sub_list(self, cmd_list, start, end): 
     tmp_lst = [] 
     for i in range(len(cmd_list)): 
      if(i < start or i > end): 
       tmp_lst.append(cmd_list[ i ]) 

     return tmp_lst 

,我在用以下方法調用:

cmd_list = self.delete_sub_list(cmd_list, 4, 14) 
+1

注意:對於區間比較,您可以直接寫'start <= i <= end'使其更容易閱讀。在你的情況下,你應該使用別的東西:) –

回答

6

的Python語法做,這是

del cmd_list[4:14 + 1] 

+ 1是匹配你的代碼所必需的,Python使用半開區間,即第一個索引包含編輯切片,但最後還不是)

+0

謝謝,這就是我所期待的。 –

3

您可以使用:

cmd_list[start:end + 1] = [] 

del cmd_list[start:end + 1] 
0

可能是最容易切片做到這一點:

cmd_list = cmd_list[:start] + cmd_list[end+1:] 

我們仍然需要在下半年結束+ 1,但它仍然是一個非常清晰的代碼行。