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

Python 如何实现两个数组间0.01容差的相近数值匹配筛选

实现逻辑

对org_df中的元素按原有顺序遍历,逐个判断calc_df中是否存在元素与当前元素的绝对差值≤0.01的容差阈值,符合条件的元素直接纳入结果数组即可。

完整可运行代码

基础循环写法(可读性更高)

org_df = [2732.64, 2296.35, 1262.28, 567.6, 436.29, 262.98, 238.74, 210.38, 19]
calc_df = [19, 2296.34, 436.3, 2732.64]
tolerance = 0.01

new_list = []
for num in org_df:
    for calc_num in calc_df:
        if abs(num - calc_num) <= tolerance:
            new_list.append(num)
            # 匹配到对应元素后直接跳出内层循环,避免重复添加
            break

print(new_list)

运行输出:

[2732.64, 2296.35, 436.29, 19]

简洁写法(列表推导式+any函数)

new_list = [num for num in org_df if any(abs(num - calc_num) <= 0.01 for calc_num in calc_df)]

常见错误说明

浮点数不能直接用==判断相等,受精度影响差极小值的两个数会被判定为不相等,必须通过差值小于容差阈值的逻辑来判断匹配。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:54:08