0

結合されている番号に基づいて名前のリストを並べ替える必要があります。私が持っているデータの例は次のとおりです。

[['Bob Person', 10], ['Josh Winner', 15], ['Jimmy Dexter', 5], ['Mary Goodsprings', 15]]

通常のソートでは次のようになります。

[['Bob Person', 10], ['Jimmy Dexter', 5], ['Josh Winner', 15], ['Mary Goodsprings', 15]]

私が実行したい並べ替えは、それらが結合されている最大数に基づいている必要があります。ただし、数値が等しい場合は、名前に頼る必要があります。このような:

[['Josh Winner', 15], ['Mary Goodsprings', 15], ['Bob Person', 10], ['Jimmy Dexter', 5]]

Mary と Josh はどちらも同点ですが、J が M よりも前にあるため、Josh の方が優位に立っていることに注目してください。

keyの関数を使用する必要があるという事実を除けば、これを行う方法についてはほとんど手がかりがありませんsort()

4

2 に答える 2

0

Python の並べ替えは安定していることが保証されているため (つまり、複数の項目が同じキーを持つ場合でも順序が保持される)、複数回実行してリストを並べ替えることができます。最も重要な基準は最後に来ます。

import operator

data = [['Bob Person', 10], ['Josh Winner', 15], ['Jimmy Dexter', 5], ['Mary Goodsprings', 15]]
data.sort()
data.sort(key=operator.itemgetter(1), reverse=True)
于 2013-08-19T08:16:27.377 に答える