Python 如何在两个数组之间找到最接近的值
例如:Python 如何在两个数组之间找到最接近的值,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,例如: a=[1,2,3] b=[1.1,1.2,2.1,2.2,3.1,3.2] print answer >>[1.1,2.1,3.1] 使用您的示例列表,这是我的解决方案。 它使用列表理解来列出a和b中的值之间的差异。这使用abs(值)仅具有差值的正值。 它对差异中的最小值进行索引,并在b中查找值。这会添加到答案中,并在最后打印出来 a = [1, 2, 3] b = [1.1, 1.2, 2.1, 2.2, 3.1, 3.2] answer = [] for i in a:
a=[1,2,3]
b=[1.1,1.2,2.1,2.2,3.1,3.2]
print answer
>>[1.1,2.1,3.1]
使用您的示例列表,这是我的解决方案。 它使用列表理解来列出a和b中的值之间的差异。这使用abs(值)仅具有差值的正值。 它对差异中的最小值进行索引,并在b中查找值。这会添加到答案中,并在最后打印出来
a = [1, 2, 3]
b = [1.1, 1.2, 2.1, 2.2, 3.1, 3.2]
answer = []
for i in a:
difference = [abs(i - j) for j in b]
answer.append(b[difference.index(min(difference))])
print(answer)
当然,这个解决方案最适用于列表b中的整数和唯一值。对于a来说,这不重要,因为您的答案中只会有两次相同的值。函数find_nexist从列表
a
和整个列表b
中获取一个值,并返回列表中最接近的值
我们通过为a
列表中的每个条目添加函数结果来构建答案
a=[1,2,3]
b=[1.1,1.2,2.1,2.2,3.1,3.2]
def find_最接近(锚定、比较):
#在比较中查找最接近定位点的数字索引
差异=[比较中val的abs(锚定val)]
最小指数=差异指数(最小(差异))
返回比较[最小索引]
答案=[]
对于a中的comp:
回答。追加(查找最近的(comp,b))
打印(答案)
欢迎来到SO!到目前为止,您尝试了什么?请提供其他场景的更多详细信息,例如,我们没有2.1,而是2.6,并且没有任何其他介于2-3之间的值??嗨,您没有定义“最近”。也许你指的是绝对值?如果b=[0.9,1.1,1.9,2.1,2.9,3.1]
会发生什么?请通读并说明你的问题如何更清楚。谢谢。在我的情况下,1没有0.9和1.1。我原来的数字太特殊了。