在python中给出一个条件,获取一个唯一的列表/元组元素

att*_*wad 2 python tuples list conditional-statements

如何在python中给出一个条件的元组/列表元素?这经常发生,我正在寻找一个很好的几行 - pythonic方式来做到这一点.

这可能是一个例子:

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

points = [[x1, y1],[x2, y2],[x3, y3], ...]
Run Code Online (Sandbox Code Playgroud)

而且我想得到一个点,即在给定任意点时最小化欧氏距离(比如说[X,Y],我的观点是:它不包含在列表中!)

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

谁有一个怪异的一个班轮(或没有)呢?谢谢!

ale*_*asi 11

min(points, key=lambda x: dist(pointToCompare2, x))
Run Code Online (Sandbox Code Playgroud)

min是一个内置函数.