5

リストの並べ替えにラムダdoを使用しようとしています。私がやりたかったのは、最初の位置からのマンハッタン距離に基づいて座標を並べ替えることです。構文のほとんどがダウンしていることはわかっていますが、何か小さなものが欠けているようです、ありがとう!

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

1 に答える 1

5

sort()ラムダ関数をソートのキーとして使用するようにメソッドに指示しようとしているようです。これはキーワード引数 keyで行われます:

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

書き直された行は次のとおりです。

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

編集:元のラムダ関数の目的を誤解しました。距離関数は負にできないので意味がない比較関数として意図されていると思いました

于 2013-01-31T22:51:18.713 に答える