2012-03-31 16 views
1

Ich habe ein Wörterbuch, in dem ich die Schlüssel alphabetisch sortieren möchte, denen derselbe Wert zugewiesen ist.Sortieren von Schlüsseln mit gleichen Werten alphabetisch

Zum Beispiel: {chai: 1, Apfel: 1, dom Banane: 1}

Wie sortiere ich diese Schlüssel alphabetisch ?!

Danke.

+0

Betrachten [ 'sorted'] (http://docs.python.org/library/functions.html#sorted) oder [' itertools'] (http://docs.python.org /library/itertools.html) für Ihre [lexikografische Sortierung] (http://en.wikipedia.org/wiki/Lexikographische_Order), sobald Sie festgestellt haben, dass sie zur selben Wiederholungsgruppe gehören. – MrGomez

Antwort

4
>>> from collections import defaultdict 
>>> items = {'chai':1, 'apple':1, 'dom banana':1} 
>>> d = defaultdict(list) 
>>> for k,v in items.iteritems(): 
     d[v].append(k) 
>>> {k:sorted(v) for k,v in d.iteritems()} 
{1: ['apple', 'chai', 'dom banana']} 
+0

Danke für den Code, aber ich habe einen massiven Tastenbereich und ich möchte die Top 10 der größten Werte ausgeben, aber ich habe mehrere Tasten mit dem gleichen Wert. Wie zeige ich die sortierten Schlüssel zusammen mit den anderen Schlüsseln an, die entweder selbst (eindeutiger Wert) oder auch sortiert sind (gleiche Werte wie andere Schlüssel). –

+0

Sie sollten das in einer separaten Frage fragen: D – jamylak

+0

Oder vergiss es, fügen Sie es einfach zu dieser Frage ich denke – jamylak

0
sorted(k for k,v in D.iteritems() if v == 1) 
+0

Dies würde für das Beispiel funktionieren, aber er könnte auch verschiedene Schlüssel sortieren wollen. – jamylak

+0

@jamylak, dann kann er eine Variable hinzufügen oder eine Funktion schreiben. Es ist ein * Beispiel * und die Frage hat das Format der Ausgabe nicht angegeben. –

Verwandte Themen