我试图使用lambda do对列表进行一些排序.我想要做的是根据他们与初始状态的曼哈顿距离对坐标进行排序.我知道我有大部分语法,但似乎我错过了一些小的东西,谢谢!
while (len(queue) > 0):
queue.sort(queue, lambda x: util.manhattanDistance(curr,x))
Run Code Online (Sandbox Code Playgroud)
您似乎试图告诉该sort()方法使用lambda函数作为排序的关键.这是通过关键字参数 完成的key:
queue.sort(queue, key = [your lambda function])
重写的行是:
queue.sort(queue, key = lambda x: util.manhattanDistance(curr,x))
编辑:误解了原始lambda函数的用途; 我认为这是一个比较函数,因为距离函数不能为负,所以没有意义