Я обновил оператор проблемы, чтобы помочь решить проблему идентификации списка пар координированных координат, который имеет кратчайшее расстояние до определенной пары координат. У меня есть переменная длина 2D список/массив как следующий :Выбор индекса, который удовлетворяет условию в python
d = [[[10,10],[20,20]],[[40,40],[60,60],[20,20]],[[60,60],[20,20],[30,30],[10,10]],[[70,70],[20,20]]]
Я хочу список индексов элемента в списке, который находится ближе всего к [80, 80].
Ответ должен быть: [1, 1, 0, 0]
Что такое лучший вещий способ сделать это? @ tom-fuller и @Skycc отметили отличный способ сделать это, но мне нужно пойти еще дальше и посмотреть на пару значений, чтобы удовлетворить это условие. Исходя из того, что было рекомендовано, я попробовал;
[i.index(min(i, key=lambda x:np.linalg.norm(x-[80,80]))) for i in d]
Это не сработало. Я подозреваю, что функция min с итерируемым мной здесь вызывает у меня горе.
Спасибо и благодаря @ Томом-Фуллера, а также. Получение жадности; рассмотрите список ввода «d» следующим образом. Извините за форматирование, если оно неверно. 'd = [[[10,10], [20,20]], [[40,40], [60,60], [20,20]], [[60,60], [20, 20], [30,30], [10,10]], [[70,70], [20,20]]] В приведенном выше примере каждый самый внутренний список представляет собой координатную пару, и я хочу найти список индексов минимального расстояния от точки до неподвижной точки [80,80]. Итак, я подумал, что могу попробовать ваше решение, и я написал следующее: «[i.index (min (i, key = lambda x: numpy.linalg.norm (x- [80,80]))) для i в d] ' Это не сработало, не зная почему. –
Ошибка здесь 'x- [80,80]', которую нельзя использовать - при работе со списками. Существует формула для определения точного расстояния между двумя точками, это то, что вы хотите? –
Том, я хочу найти индекс пары координат, который имеет кратчайшее расстояние, учитывая, что вход представляет собой многомерную многомерную структуру данных. Ответ должен быть [1, 1, 0, 0] –