[Python-de] Dictionary sortieren???

Dinu Gherman gherman at darwin.in-berlin.de
Thu May 29 11:13:37 EDT 2003


Heike C. Zimmerer:

> Meine Frage war, nach was sortiert wird, wenn eine Liste wie in seinem
> Fall nur aus Dictionaries besteht.  Nicht dass ich das vorhätte - aber
> der OP wollte das und meine Dokumentation schweigt sich dazu aus.
> Vielleicht lässt sich ja ein Sinn dahinter entdecken.

Wie schon einmal gesagt, ich hatte vor einer Weile eine Denksport-
aufgabe unter dem Titel "Beschraenktes Sortieren" gestellt. Da kam
das auch vor. Es macht sehr viel Sinn, Listen von Dictionaries nach
einzelnen Schluesselworten zu sortieren.

Weil das kollektive Gedaechtnis hier offenbar arg kurz ist, hier
nochmal die kuerzeste Loesung von Rene Liebscher, die auch noch
andere huebsche Eigenschaften hat:

def sort(seq, indizes):
	seq.sort(lambda a,b,indizes=indizes:reduce(lambda x,y:x or 
y,[cmp(a[i],b[i]) for i in indizes]))
	return seq

a = [{'vorname': 'christian', 'name': 'klinger'},
      {'vorname':'alfons', 'name':'mustermann'}]

 >>> sort(a, ['vorname'])
[{'vorname': 'alfons', 'name': 'mustermann'},
  {'vorname': 'christian', 'name': 'klinger'}]

Gruss,

Dinu

--
Dinu C. Gherman
......................................................................
"It was wonderful to find America, but it would have been more wonder-
ful to miss it." (Mark Twain)






More information about the Python-de mailing list