【问题标题】:Syntax behind min(must_visit, key=lambda x:...) [duplicate]min(must_visit, key=lambda x:...) 后面的语法 [重复]
【发布时间】:2019-09-16 10:06:36
【问题描述】:

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

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

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

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

【问题讨论】:

  • def key(x): return distance(path[-1], x)
  • 为什么要删除关于食谱的问题?
  • @JuanCarlosOropeza 我想我有自己的答案(它是正确的)

标签: python function lambda anonymous-function


【解决方案1】:

您的 lambda 函数将返回 distance(path[-1], x) 返回的内容,因此 nerest 将是 must_visit 中的最小元素,其中 distance(path[-1], x) 是最小值

等效函数:

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

你可以像这样使用它:

nerest = min(must_visit, key=my_func)

【讨论】:

    【解决方案2】:

    path[-1] 返回最后一个点

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

    min 函数遍历 must_visit 并计算最后一个点与 must_visit 中点之间的距离,并返回其中的最小值。

    【讨论】:

      猜你喜欢
      • 2012-02-16
      • 2019-06-20
      • 1970-01-01
      • 2017-04-26
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      • 2013-03-20
      • 2016-07-01
      相关资源
      最近更新 更多