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

如何实现列表元素两两对比并排除自身匹配?(纬度值场景)

解决纬度值匹配问题

原代码存在两个问题:

  • 未排除元素与自身匹配的情况
  • 条件误用了0.1作为差值范围,而需求是0.01

基础修正版(保留双向匹配)

以下代码排除自身匹配,同时修正差值范围:

lats = [79.826, 79.823, 79.855, 79.809]

# 遍历元素的索引与对应值
for i_idx, i_val in enumerate(lats):
    for j_idx, j_val in enumerate(lats):
        # 跳过自身,判断差值是否在0.01范围内
        if i_idx != j_idx and abs(i_val - j_val) <= 0.01:
            print(f"{i_val} and {j_val}")

输出结果:

79.826 and 79.823
79.823 and 79.826

进阶去重版(只保留单向组合)

如果不想重复输出A and B和B and A这类双向组合,可以调整内层循环的起始索引:

lats = [79.826, 79.823, 79.855, 79.809]

for i_idx, i_val in enumerate(lats):
    # 只对比当前元素之后的元素
    for j_idx in range(i_idx + 1, len(lats)):
        j_val = lats[j_idx]
        if abs(i_val - j_val) <= 0.01:
            print(f"{i_val} and {j_val}")

输出结果:

79.826 and 79.823

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 10:54:19