为什么我的代码不会忽略列表中重复的值?

时间:2017-02-27 20:00:55

标签: python python-3.x csv

我试图不在' 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'])

2 个答案:

答案 0 :(得分: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'])

答案 1 :(得分:0)

这可能是因为你使用'float'而深度是另一种类型。

请尝试使用此行:

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

要明确,这不是正确的做法。尝试从头开始使用适当的类型。