Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在两个数组之间找到最接近的值_Python_Python 3.x_Python 2.7 - Fatal编程技术网

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。我原来的数字太特殊了。