2017-02-27 5 views
0

'd'に値を含めようとしていますが、リストに追加するときに繰り返されます。私は、深度リストに繰り返された値を含める必要はありません。私は間違って何をしていますか?なぜ私のコードは繰り返しリストの値を無視しないのですか?

depth = columns['i_depth'] 

for row in reader: 
    r = float(row['roll']) 
    p = float(row['pitch']) 
    d = float(row['i_depth']) 
    if 0.21 <= p <= 0.31: 
      if -0.06 <= r <= 0.06: 
       if 90 >= d >= 4: 
        if d not in depth: # this is the code I added to remove repeats 
         columns['i_depth'].append(row['i_depth']) 
         columns['irrad2'].append(row['sci_ocr504i_irrad2']) 
         columns['lon'].append(row['lon']) 
         columns['lat'].append(row['lat']) 
+3

おそらく浮動小数点精度。 –

+3

あなたは ''深さにはない 'をテストしますが、'深さに 'dを加えることは決してありません。 'depth.append(d)'を実行する必要があります。 –

+0

@Hughしかし、私は列['深さ']で深さにdを加えて、深度を – Adam

答えて

0

「float」を使用し、深さが別のタイプのためだと考えられます。

ではなく、この行を試してみてください:

if d not in [float(i) for i in depth]: 

を明確にするために、それを行うには正しいことではありません。最初から適切なタイプを使用してください。

0

解決策を見つけました。それが最も簡単なのかどうかは分かりませんが、今はうまくいきます。

depth = columns['i_depth'] 
temp = [] # added this 
for row in reader: 
    r = float(row['roll']) 
    p = float(row['pitch']) 
    d = float(row['i_depth']) 
    if 0.21 <= p <= 0.31: 
      if -0.06 <= r <= 0.06: 
       if 90 >= d >= 4: 
        if d not in temp: 
         temp.append(d) # added this 
         columns['i_depth'].append(row['i_depth']) 
         columns['irrad2'].append(row['sci_ocr504i_irrad2']) 
         columns['lon'].append(row['lon']) 
         columns['lat'].append(row['lat']) 
+0

これはうまくいくはずの理由はありませんが、質問内のコードはうまくいきませんでした。何を私たちに伝えていませんか? –

+2

また、 '' 0.21 <= p <= 0.31、-0.06 <= r <= 0.06、4 <= d <= 90、dが...: 'にならないようにしてください。あなたはインデントのレベルが1つだけです。 –

+1

@ Elmex80s。私は秩序を変えたが、関係の感覚は変えなかった –

関連する問題