min(must_visit, key=lambda x:...) 背后的语法

Syntax behind min(must_visit, key=lambda x:...)

我在这里查看 TSP 问题的贪婪实现 https://pastebin.com/NeMbdzdr

下一行是寻找路径中最新点的最近点,

nearest = min(must_visit, key=lambda x: distance(path[-1], x))

lambda x: distance(path[-1], x)是什么意思,作为单独的函数怎么写?

路径[-1]returns最后一点

distance(path[-1], x) returns 最后一个点和点 x 之间的距离。

min 函数迭代 must_visit 并计算最后一个点与 must_visit 中的点之间的距离,以及 returns 个中的最小值。

您的 lambda 函数将 return 是 distance(path[-1], x) return,因此 nerest 将是 must_visit 中的最小元素,其中 distance(path[-1], x) 至少

等效函数:

def my_func(x):
    return distance(path[-1], x)

您可以像这样使用它:

nerest = min(must_visit, key=my_func)