2011-11-21 3 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

파이썬 구문이 작업을 수행하는 것은

del cmd_list[4:14 + 1] 

입니다 (+ 1은 코드와 일치해야합니다. 파이썬은 반 개방 간격을 사용합니다. 즉, 첫 번째 색인은 슬라이스의 에드 만, 마지막은 아니다)

+0

고마워, 그게 내가 무엇을 찾고있어. –

3

당신이 중 하나를 사용할 수 있습니다.

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

cmd_list[start:end + 1] = [] 

또는

del cmd_list[start:end + 1] 
0

는 슬라이스와 함께 할 가장 쉬운 방법이 될 수 있음

두 번째 절반에도 여전히 end + 1이 필요하지만 코드의 명확한 선이 남아 있습니다.