在python中获得给定条件的唯一列表/元组元素

在python中获得给定条件的唯一列表/元组元素,python,list,tuples,conditional-statements,Python,List,Tuples,Conditional Statements,在python中,如何在给定条件的情况下获取元组/列表元素? 这种情况经常发生,我正在寻找一种很好的几行python式的方法 这里可以举一个例子: 考虑一个包含二维点坐标的元组,如下所示: points = [[x1, y1],[x2, y2],[x3, y3], ...] 我想得到一个点,它使得给定任意点的欧几里德距离最小(比如说[X,Y],我的点是:它不包含在列表中!) 有没有人会因为这件事而感到奇怪? 谢谢 .如果只检查点是否更近,而不返回距离,请注意,最好从距离计算中删除平方根,使计算

在python中,如何在给定条件的情况下获取元组/列表元素? 这种情况经常发生,我正在寻找一种很好的几行python式的方法

这里可以举一个例子:

考虑一个包含二维点坐标的元组,如下所示:

points = [[x1, y1],[x2, y2],[x3, y3], ...]
我想得到一个点,它使得给定任意点的欧几里德距离最小(比如说[X,Y],我的点是:它不包含在列表中!)

有没有人会因为这件事而感到奇怪? 谢谢


.

如果只检查点是否更近,而不返回距离,请注意,最好从距离计算中删除平方根,使计算速度更快。;)你可以有一个单独的函数,我通常称之为“distPow”,用于获取最近的点。如果需要距离,则可以仅在该点上使用dist函数。
def dist(p1, p2):
    return sqrt((p2[0]-p1[0])**2+(p2[1]-p1[1])**2)
pointToCompare2 = [X, Y]
min(points, key=lambda x: dist(pointToCompare2, x))
v = [1,3,2,4,7,3,3,4,5,11]

def get_num_uniques(v):
    count = []
    dup = []
tmp = []
for i in v:
    if i not in count:
        count.append(i)
    else:
        dup.append(i)
        count.remove(i)
for j in count:
    if j not in dup:
        tmp.append(j)

return tmp

#Call the function
print get_num_uniques(v)