在2个列表中查找非匹配值的最有效方法

时间:2015-06-21 21:27:00

标签: python

我有一个案例,我有两个任意长度的列表。这些列表中的每个值都是n个浮点值的另一个列表。

a = [[0.8,0.9,1.], [0.5,2.6,2.2], [1.5,5.6], [5.8,2.3,1.9],] 

b = [[0.8,0.91,1.01], [2.5,4.6,8.8], [1.49,5.59],]

我想比较两个列表中的值,并找到不在给定容差范围内的值。

我感兴趣的是在纯Python中实现这一目标的最有效方法,而不需要恢复编译代码或多线程,并且只使用标准库。希望我能在这个过程中学到更多东西!

示例:

给定0.001的容差,这是两个比较值之间的最大距离的度量,比较列表a和b将返回:

匹配a和b中的值:

am = [[0.8,0.9,1。],[1.5,5.6],]

be = [[0.8,0.91,1.01],[1.49,5.59],]

不匹配的值:

anm = [[0.5,2.6,2.2],[5.8,2.3,1.9],]

bnm = [[2.5,4.6,8.8],]

我们也可以期待没有重复。这有帮助吗?

1 个答案:

答案 0 :(得分:2)

使用列表理解你可以实现这个

result = [ y for x in a for y in x if low<=y<=high]

此代码会为您提供lowhigh

之间的值