【发布时间】:2014-12-02 00:17:53
【问题描述】:
假设我们有两个长度相等的数组:
arr1 = (21, 2, 3, 5, 13)
arr2 = (10, 4.5, 9, 12, 20)
arr1 中的哪个变量与arr2 中的变量相等/最接近?
查看这两个列表,我们可以轻松地说最接近的数字是 4.5 和 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 最接近?
-
你是对的,我的错
标签: python comparison