在Python中使用lambda

Jam*_*ter 5 python sorting

我试图使用lambda do对列表进行一些排序.我想要做的是根据他们与初始状态的曼哈顿距离对坐标进行排序.我知道我有大部分语法,但似乎我错过了一些小的东西,谢谢!

while (len(queue) > 0):  
    queue.sort(queue, lambda x: util.manhattanDistance(curr,x))  
Run Code Online (Sandbox Code Playgroud)

Kyl*_*and 5

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

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

重写的行是:

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

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