У меня есть список списков в python, где в моем случае списки являются координатами. Я хочу добавить новые координаты в этот список, но только если координата еще не существует. Это легко выполнимо следующим образом.
List = [coord1,coord2,...,coordn]
coord = [x,y,z]
if not coord in List: List.append(coord)
Проблема в том, что эти координаты генерируются со всеми видами функций goniometri c, поэтому они являются числами с плавающей точкой, и может возникнуть следующий минимальный пример:
List =[[0,0],[1,0]]
coords = [0.99999999999,0.000000000001]
Я не хочу добавлять новую координату, поэтому мне было интересно, существует ли какой-нибудь простой способ проверить, существует ли простая функция func
, которая будет выполнять что-то вроде следующего :
List =[[0,0],[1,0]]
coord = [0.99999999999,0.000000000001]
tol = 1e-10
func(coord,List,tol) = True
т.е. func
возвращает True
, если в Списке существует координата c, например, ||c-coord||<tol
. Одно из ограничений, что List остается списком, поэтому предпочтительнее, если его не нужно преобразовывать в массив numpy, но использование numpy в общем случае возможно, и я думаю, что это необходимо.