例如:
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]
答案 0 :(得分:1)
使用您的示例列出这是我的解决方案。 它使用列表推导来列出a和b中的值之间的差异。这使用abs(value)仅具有差的正值。 它索引差异中的最小值,并找到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中的整数和唯一值。暂时不要紧,因为答案中的相同值只有两次。
答案 1 :(得分:0)
函数find_closest从列表a
和整个列表b
中获取一个值,并在列表中返回最接近的值。
我们通过为a
列表中的每个条目附加函数的结果来构建答案。
a = [1,2,3]
b = [1.1,1.2,2.1,2.2,3.1,3.2]
def find_closest(anchor, comparisons):
# find index of number in comparisons that is closest to anchor
diffs = [abs(anchor-val) for val in comparisons]
minimum_index = diffs.index(min(diffs))
return comparisons[minimum_index]
answer = []
for comp in a:
answer.append(find_closest(comp,b))
print(answer)