5

我正在尝试使用 lambda 对列表进行排序。我想做的是根据它们与初始位置的曼哈顿距离对坐标进行排序。我知道我的大部分语法都写下来了,但似乎我遗漏了一些小东西,谢谢!

while (len(queue) > 0):  
    queue.sort(queue, lambda x: util.manhattanDistance(curr,x))  
4

1 回答 1

5

您似乎正试图告诉该sort()方法使用您的 lambda 函数作为排序的。这是通过关键字参数 key完成的:

queue.sort(queue, key = [your lambda function])

重写的行是:

queue.sort(queue, key = lambda x: util.manhattanDistance(curr,x))

编辑:误解了原始 lambda 函数的目的;认为它是一个比较函数,这没有意义,因为距离函数不能是负数

于 2013-01-31T22:51:18.713 回答