比方说,我们有两个相等长度的数组:Python:如何在两个单独的数组之间找到两个相等/最接近的值?
arr1 = (21, 2, 3, 5, 13)
arr2 = (10, 4.5, 9, 12, 20)
哪个变量从arr1
是等于/最接近从arr2
一个变量?
看看这两个清单,我们可以很容易地说最接近的数字是4.5和。我试着实现一个函数,返回两个最接近的值给出两个列表,它有点工作上面的例子,但它只是一个解决方案,因为它不是最佳的。你可以很容易地检查功能,当我们稍微改变这样的阵列失败:
arr1 = (21, 2, 3, 5, 13)
arr2 = (10, 4.5, 9, 12, 18)
函数返回13值和18
下面是函数:
def get_nearest(arr1, arr2):
lr = [[0, 0, 0]]
for x1 in arr1:
for x2 in arr2:
r = (x1/x2 % (x1 + x2))
print x1, x2, r
if r <= 1 and r >= lr[0][2]:
lr.pop()
lr.append([x1, x2, r])
return lr
你能想出一个更好的吗?
对我来说它似乎是5和4.5最接近? – 2014-12-02 00:19:43
你是对的,我的错误 – minerals 2014-12-02 00:20:35