2016-08-25 2 views
1

저는 파이썬에 익숙하지 않습니다. 많은 시도를 한 후에 아래의 문제에 대한 해결책을 찾을 수 없습니다.python : 목록에서 특정 값을 선택하는 방법

나는 (아래) 목록을 가지고 있으며, 그들이 단일 단일 제로를 제외하고 연속적이라면 요소의 색인 번호를 찾고 싶다. 즉 아래 목록에서 -7, -8, -4은 선택하지 않아야합니다. 그 사이에 더 많은 틈이 있습니다. 그러나 요소의 다음 인덱스 번호는

-6, 0, -4, -29, -10, 0, -16 

2, 3, 0, 18, -1, -2 

21, 10, -10, 0, -12, 0 

deltacount = [0, -7, 0, 0, -8, 0, 0, -4, 0, 0, 0, 
    **-6, 0, -4, -29, -10, 0, -16**, 0, 0, 
    **2, 3, 0, 18, -1, -2**, 0, 0, 0, 0, 0, 0, 
    **21, 10, -10, 0, -12, 0**] 

도와주세요

를 포착해야한다.

+0

조건을 더 자세히 지정할 수 있습니까? –

+0

기본적으로 그룹화를 만들려고합니다. 즉, 목록의 요소 뒤에 두 개의 0이 나오지 않고 앞에 오는 두 개의 값도 그룹에 포함하려는 것보다 0이 아닌 경우입니다. 위의 목록에서 볼드체로 표시된 세 그룹이 있고 목록의 색인 위치 만 원할 것입니다. – user1672315

답변

0
deltacount = [0,-7, 0, 0,-8, 0, 0,-4, 0,0,0,-6,0, -4, -29, -10, 0, -16, 0, 0, 2, 3, 0, 18, -1, -2, 0, 0, 0, 0, 0, 0, 21, 10, -10, 0, -12, 0] 
zero_before_count=0 
zer_after_count=0 
indx=0 
list1=[] 
for i in deltacount: 
    if i!=0: 
     indx=deltacount.index(i) 
     if deltacount[indx-1]==0 and deltacount[indx-2]==0: 
      if deltacount[indx+1]==0 and deltacount[indx+2]==0: 
       list1.append(i) 
finallist=[x for x in deltacount if x not in list1 and x!=0] 
print finallist 

이 코드를 사용해보십시오.

+0

도움 주셔서 감사합니다. 단지 두 가지만 더 질문합니다. 어떻게 든 -4는 6, 0, -4, -29, -10, 0, -16의 그룹에서 누락되었습니다. 또한 어떻게 finallist에서 인덱스 위치를 얻을 수 있습니까? – user1672315

관련 문제