Возврат списка ближайших номеров из одного списка по сравнению с другим списком - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть два списка поплавков. Я пытаюсь вернуть ближайшие элементы из моего основного списка, когда сравниваю его со вторым списком. Так, например, если 1-й элемент vals ближе всего к 3-му элементу mylist, 3-й элемент добавляется в новый список и т. Д.


def closest(lst, K):
  vals = []
  for val in K:
     num = lst[min(range(len(lst)), key = lambda i: abs(lst[i]-val))]
     vals.append(num)
  return vals

mylist = [-0.25, 0.15, 0, -0.3, 0.45, 0.37]
vals = [0.12, 0.4, -0.32]

print(closest(mylist, vals))
This should return:
[0.15, 0.37, -0.3]

Я получаю эту ошибку:

ValueError                                Traceback (most recent call last)
<ipython-input-28-8d40bd9d3507> in <module>()
     16   return vals
     17 
---> 18 print(closest(mylist, vals))
     19 

<ipython-input-28-8d40bd9d3507> in closest(lst, K)
     12   vals = []
     13   for val in K:
---> 14      num = lst[min(range(len(lst)), key = lambda i: abs(lst[i]-val))]
     15      vals.append(num)
     16   return vals

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...