0

適切な出力を準備する最後のマイルストーンの前にいます。非常に単純だと思いますが、私のアプローチは機能しません。

次のような辞書が与えられた場合

mydict = {x1: (val1, dist1, (lat1, lon1)), x2: (val2, dist2, (lat2, lon2)), ...}

これを配列内でネストされた方法でソートしようとしました。最初に「値」を使用し、等しい場合は「距離」でソートしました。

ただし、宿題をして、次の方法で試してみました。

import operator
s = sorted(mydict.iteritems(), key=operator.itemgetter(1))

問題は、並べ替えメソッドがタプルに適用できる場合、それはすでに正しい順序になっているため、非常に簡単になるということです。

残念ながら私は得る:

「リスト」オブジェクトは呼び出し可能ではありません

アイデアはありますか?

4

2 に答える 2

5

sorted名前をリスト値で上書きした可能性はありますか?

于 2012-07-26T00:12:06.300 に答える
0

問題は、並べ替えメソッドがタプルに適用できる場合、それは非常に簡単になるということです

sorted()タプルのリストで完全に機能します。この場合、辞書式順序付けが使用されます。

(a,b) ≤ (a′,b′) a < a′ または (a = a′ and b ≤ b′).

これは、任意の数の次元に拡張できます。

>>> sorted([(10, 1), (5, 3), (6, 5), (3, 2), (5, 10)])
[(3, 2), (5, 3), (5, 10), (6, 5), (10, 1)]
于 2012-07-26T00:16:18.660 に答える