python – 给出两个整数列表,我们怎样才能从另一个列表中找到一个列表中的结束数?

鉴于我有两个不同的int列表.

a = [1,4,11,20,25]和b = [3,10,20]

我想返回一个长度为len(b)的列表,它将最接近的数字存储在b中的每个int中.

所以,这应该返回[4,11,20].

我可以用蛮力做到这一点,但有什么更有效的方法呢?

编辑:如果我可以使用标准库,如果需要,那将是很好的.

最佳答案

>>> a = [1, 4, 11, 20, 25]
>>> b = [3, 10, 20]
>>> 
>>> ans = list(map(lambda y:min(a, key=lambda x:abs(x-y)),b))
>>> ans
[4, 11, 20]

这是一个问题’获得最接近值的问题’的循环

value = #number
min(a, key=lambda x:abs(x-value))

点赞