使用 "if" Python 过滤不会过滤任何东西?



i有一个列表,其中包含两个维度的列表,因此记录[a] [b]将是其中一个值。有一些标准应该过滤。我使用了" for"one_answers"如果"的组合来做到这一点。然后必须添加一些其他标准,即过滤器输出具有坐标值的点,该点在当前迭代点附近的10*10个单位范围内。但是,我的代码编译但什么都不做,我不知道为什么(因为我仍然是Python的新手)。

for rec in range(1,len(records)-1):
    for koor in range(1,len(records)-1):
        if records[rec][4]+10 >= records[koor][4] >= records[rec][4]-10 and
           records[rec][5]+10 >= records[koor][5] >= records[rec][5]-10 and
           -1.00036 <= records[rec][8] / records[koor][8] <= 1.00036:

我认为它会做的是在定义的区域(第3行; 4)中寻找点,只让它们在第5行的条件下通过。但是它可以让一切通过。为什么不起作用?

编辑:记录形式的一个条目[a]看起来像: [30 .12.1899 08:47:00','7.2.2003 00:00:00',48.82,11.2,44441489.89,5410519.48,4,1.2,1.2,508.55,0.0,0.0,0.0,0.0,0.0,0.0Div>

尝试以下:

for rec in records[1:-1]:
    for koor in records[1:-1]:
        if rec == koor:
            # handle this some other way
        elif all(20 >= koor[x] - rec[x] + 10 >= 0 for x in [4, 5]) and abs(rec[8] / koor[8]) <= 1.00036:

最新更新