2017-04-11 3 views
0

Ich habe die Basis unter Code:ein Wörterbuch Sortierung basierend auf mehrer params

import operator 
scores = {} 
scores[3000] = 18 
scores[2000] = 18 
scores[1000] = 17 

sorted_scores = sorted(scores.items(), key=operator.itemgetter(1),reverse=True) 
print (sorted_scores) 

Dies wird das Wörterbuch-Scores basierend auf dem Wert sortieren. Was nun, wenn ich die resultierende sortierte_Scores-Liste basierend auf dem Schlüssel sortieren möchte, diesmal jedoch in aufsteigender Reihenfolge.

Mit anderen Worten: Ich erwarte die Ausgabe wie folgt zu sein: [(2000, 18), (3000, 18), (1000, 17)]

So wird diese in absteigender Reihenfolge nach Werten sortiert aber da 2000 und 3000 dieselben Werte haben, sind sie in aufsteigender Reihenfolge sortiert.

Kann dies in irgendeiner Weise erreicht werden?

Vielen Dank im Voraus.

+0

Mögliche Duplikat (http://stackoverflow.com/questions/4233476/sort-a- List-by-Multiple-Attribute) – m0nhawk

Antwort

0

Sie können einfach doppelt sorted verwenden, mit verschiedenen key: [? Sortieren Sie eine Liste von mehreren Attributen]

sorted(sorted(scores.items(), key=operator.itemgetter(0)), key=operator.itemgetter(1),reverse=True) 
# [(2000, 18), (3000, 18), (1000, 17)] 
Verwandte Themen