在Python中根据条件获取唯一的列表/元组元素
我想知道在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))