2016-08-25 17 views
1

私はPythonには新しく、多く試した後、以下の問題の解決策を見つけることができません。python:リストから特定の値を選択する方法

私はリスト(下記)を持っており、1つの単一ゼロを除いて連続していれば、要素のインデックス番号を見つけたいと思っています。 つまり、リストの下の-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

私は基本的にグループ化を作成しようとしています。つまり、リスト内の要素の後に2つのゼロがなく、先行する2つの値もゼロではない場合です。上のリストから太字でマークされた3つのグループがあり、リスト内のインデックス位置がほしいだけです。 – 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

ありがとうございました。もう2つの質問だけ。何とか-4は、6、0、-4、-29、-10、0、-16のグループから抜けています。また、どのようにしてfinallistでインデックスの位置を取得できますか? – user1672315

関連する問題