在Python中根据条件获取唯一的列表/元组元素

2 投票
2 回答
1179 浏览
提问于 2025-04-15 11:35

我想知道在Python中,如何根据条件获取元组或列表中的元素?这个问题经常出现,我希望能找到一种简洁优雅的方式来实现。

这里有个例子:

想象一下,有一个元组,里面存的是二维点的坐标,像这样:

points = [[x1, y1],[x2, y2],[x3, y3], ...]

我想要找到一个点,这个点与我给定的任意点(比如说[X, Y],我的点并不在列表中!)之间的欧几里得距离最小。

def dist(p1, p2):
    return sqrt((p2[0]-p1[0])**2+(p2[1]-p1[1])**2)
pointToCompare2 = [X, Y]

有没有人能给我一个简单的解决方案(或者不简单的也行)?谢谢!

2 个回答

0
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)

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

11
min(points, key=lambda x: dist(pointToCompare2, x))

min是一个内置函数

撰写回答