2016-04-28 49 views
0

タプルのリストをソートしようとしています。並べ替えで並べ替え

リストは、私は、リストをソートする必要があり、フォーム

list=[(num1,distance1,blah1),.....] 

であるw.r.t.距離は同じですが、ネクタイの場合は、より小さいnum値を選択する必要があります。

どうすればよいですか?

+0

あなたがこれまで行ってきたことを私たちに見せてください。 – styvane

+0

@ user3100115バイナリヒープを使ったDijkstraのアルゴリズムの巨大な実装です。私は正しい順序で結果を返すのに苦労しています。 – Janmajay

答えて

4

operator.itemgetterを使用してキー機能を作成します。

from operator import itemgetter 

new_list = sorted(list, key=itemgetter(1,0)) 
+1

より正確には、彼の場合には 'itemgetter(1、0)'です。 –

+0

これはどのように機能しますか? Pythonは 'itemgetter(1)'によってソートします.2つのタプルに適用された同じ値が返された場合、 'itemgetter(0)'によってソートされますか?あるいは、洗練されたタプルマジックがあるでしょうか? –

+0

'itemgetter(1,0)'は、指定されたリストの2番目と1番目の値を含むタプルを返します。キーが配列の場合、 'sort'は最初に最初の値を、次に2番目をソートします。 –