Следующий код приводит к синтаксической ошибке.
def closest(lst, k, l):
return lst[ min(range(len(lst)), key = lambda i: (abs(lst[i][0] - k)) if (lst [i][1] == l) else None)]
h = [ ([3,5],[63, 5]), ([3, 10],[65,10]) ]
lst =[ (3,5), (15,5), (60,5), (15,10), (40,10), (60,10) ]
for z in range(len(h)):
print(closest(lst, h[z][1][0], h[z][1][1]))
Для [63, 5])
и [65,10]
в h
, я ожидаю (60,5)
и (60,10)
в lst
соответственно, где h[0][1][1] == lst[2][1]
и h[1][1][1] == lst[5][[1]
и h[0][1][0]
ближайший к lst[2][0]
и h[1][1][0]
ближайший к lst[5][[1]