将一个列表的值替换为另一个列表的最接近值



我有两个列表:

list_1= [123, 122, 524, 500, 515, 600, 620]
list_2= [120, 150, 500, 550, 600, 650]

我想将 list_1 中的值替换为 list_2 中最接近的值,我的结果如下所示:

new_list= [120,120,500,500,500,600,600]

能得到一些帮助会很棒!

我是python的新手,我正在尝试找到类似的解决方案。我背后的逻辑是:

for j in list_2:
for i in enumerate(list_1):
if j==i: (here I would need a conditional to say if it is close to value j)

一个想法是从list_1的值 i 中减去 list_2 中的值 j,如果结果小于 50,那么它将用 J 替换 i,否则它将返回 i。

我是如何尝试写的(到目前为止没有成功(:

if i-j<=50 :
list_1[i]= list[i].replace(j,i)
else:
return i
list_1= [123, 122, 524, 500, 515, 600, 620]
list_2= [120, 150, 500, 550, 600, 650]
new_list = list_1[:]
for i, v in enumerate(list_1):
ok = []
for j, k in enumerate(list_2):
ok.append(abs(v-k))
# find the index of the closet element from list_2 to the current v
ind = ok.index(min(ok))
new_list[i] = list_2[ind]
print(new_list)
#[120, 120, 500, 500, 500, 600, 600]

相关内容

  • 没有找到相关文章

最新更新