You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python嵌套for循环迭代异常 坐标范围匹配结果重复问题求助

飓风轨迹点位匹配循环逻辑异常排查

问题1:测试样本存在语法错误

你提供的sample列表末尾两个测试点之间缺失逗号,属于语法错误:

# 错误写法,两个子列表之间无逗号
[99999, 18.6, -80.5][99998,18.6,-80.5]

该写法会触发Python隐式索引逻辑,不会生成你预期的[99998,18.6,-80.5]元素,这是结果中缺失99998号测试点的核心原因之一。正确写法需要在两个子列表间补逗号:

[99999, 18.6, -80.5],
[99998,18.6,-80.5]

问题2:双层循环无终止逻辑,导致重复追加元素

你当前的双层循环逻辑中,对每一个待校验点位loc,会遍历完ida内全部10个轨迹点,只要点位落在某条轨迹的缓冲范围内就会追加一次结果,没有匹配成功后跳出内层循环的逻辑。
你的测试点[99999, 18.6, -80.5]刚好落在所有10个轨迹点的经纬度缓冲范围内(设置的纬度缓冲±0.6、经度缓冲±0.7,所有轨迹点与该测试点的纬度差不足0.2、经度差不足0.7,全部满足判断条件),因此会被重复追加10次,和你看到的输出完全吻合。

修正后代码

调整逻辑:补全样本缺失的逗号,点位匹配到任意一条飓风轨迹后立刻终止内层遍历,避免重复追加。

ida = [['IDA', 18.6, -80.5],
 ['IDA', 18.619048, -80.571429],
 ['IDA', 18.638095, -80.642857],
 ['IDA', 18.657143, -80.714286],
 ['IDA', 18.67619, -80.785714],
 ['IDA', 18.695238, -80.857143],
 ['IDA', 18.714286, -80.928571],
 ['IDA', 18.733333, -81.0],
 ['IDA', 18.752381, -81.071429],
 ['IDA', 18.771429, -81.142857]]

sample = [[25820, 25.891041, -80.383553],
 [25821, 34.016776, -117.837528], [25822, 33.812013, -117.886268],
 [25823, 47.980291, -122.207616], [25824, 32.553882, -116.978896],
 [25825, 34.102001, -118.324049], [25826, 33.410692, -112.418414], 
[25827, 51.503139, 5.477582], [25828, 52.248382, -0.810513], 
[99999, 18.6, -80.5],
[99998,18.6,-80.5]]

ID_exposed = []
for loc in sample:
    is_exposed = False
    for track_point in ida:
        lat_match = (track_point[1] - 0.6) < loc[1] < (track_point[1] + 0.6)
        lon_match = (track_point[2] - 0.7) < loc[2] < (track_point[2] + 0.7)
        if lat_match and lon_match:
            is_exposed = True
            # 匹配成功即终止剩余轨迹点遍历,避免重复
            break
    if is_exposed:
        ID_exposed.append(loc)

print(ID_exposed)

运行输出为:

[[99999, 18.6, -80.5], [99998, 18.6, -80.5]]

和预期结果完全一致。

备注:你描述中提到的cargo[0][1]代表点位ID和当前代码变量逻辑不符,当前sample内点位ID存储在每个子列表的0号索引位,即loc[0]。

内容的提问来源于stack exchange,提问作者LieutenantCapricorn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 22:01:06