2016-08-25 4 views
1

Я новичок в python и много раз пробовал, я не смог найти решение проблемы ниже.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

Я пытаюсь в основном создать группу, т. Е. Если за элементом в списке не следуют два нули, а предыдущие два значения также не равны нулю, чем я хочу включить его в группу. поэтому из приведенного списка будет три группы, выделенные жирным шрифтом, и я просто хочу, чтобы их индексные позиции в списке. – 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, а также как я могу получить позиции индекса в финале? – user1672315

Смежные вопросы