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

Python如何找出嵌套列表中不存在于另一列表的向量元素

实现方案

你提到list2的索引0、1元素都属于list1的包含范围,说明需要兼容浮点数精度误差,不能直接做精确相等判断,以下是适配需求的实现:

带浮点容差的筛选代码

list1 = [[-27.1785, -20.7318, -40.724]]
list2 = [[-27.1785, -20.7318, -40.724], [-27.1786, -20.7318, -40.724], [27.1786, -20.7318, -40.724]]

# 可根据实际精度需求调整容差值
tolerance = 1e-4
result = []

for vec in list2:
    in_range = False
    for ref in list1:
        # 两个向量所有维度差值都在容差范围内时,判定为属于包含范围
        if all(abs(x - y) < tolerance for x, y in zip(vec, ref)):
            in_range = True
            break
    if not in_range:
        result.append(vec)

# 输出结果
print(result[0])
# 运行输出:[27.1786, -20.7318, -40.724]

扩展:精确匹配场景(仅作参考)

如果是要求数值完全相等的场景,可以将列表转为可哈希的元组,用集合做快速查找:

list1 = [[-27.1785, -20.7318, -40.724]]
list2 = [[-27.1785, -20.7318, -40.724], [-27.1786, -20.7318, -40.724], [27.1786, -20.7318, -40.724]]

ref_set = set(tuple(v) for v in list1)
result = [v for v in list2 if tuple(v) not in ref_set]

内容的提问来源于stack exchange,提问作者pekkuskär

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:36:07