AW: [mailinglist] [Python-de] Dictionary sortieren???

Uwe Schmitt schmitt at num.uni-sb.de
Wed May 28 18:30:11 EDT 2003


hallo,

lösung ist das sogenannte

decorate-sort-undecorate pattern:

   tmplist = [ ( d['vorname'], d) for d in a ]
   tmplist.sort()
   reslist = [ d for ( k,d ) in tmplist ]

müsste so funktionieren..
ist universell benutzbar: zuerst baut man eine hilfsliste aus tupeln,
wobei der sortierschlüssel zu beginn steht, und dann muss man die objekte am
ende des tupels mitschleppen.
sort auf der liste und dann wieder die objekte extrahieren.
hat oft auch ne recht gute performance, erster und letzter schritt
sind O(n), fallen also kaum ins gewicht, und sort dominiert mit O(n log n),
mit kleinen konstanten, da in c implementiert.

gruss, uwe.

  -----Ursprüngliche Nachricht-----
  Von: python-de-bounces at python.net [mailto:python-de-bounces at python.net]Im
Auftrag von Christian Klinger
  Gesendet: Mittwoch, 28. Mai 2003 16:21
  An: python-de at python.net
  Betreff: [mailinglist] [Python-de] Dictionary sortieren???


  Hallo Liste!

  habe eine Liste die Dictionaris enthält!

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

  Ich möchte nun in der Liste nach dem Key 'name' sortieren.

  mit einem  a.sort() sortiert er nur nach vorname (glaube ich)!

  Hat jemand eine Idee wie man sowas machen kann???

  mfg christian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://starship.python.net/pipermail/python-de/attachments/20030528/b6e35d72/attachment.htm


More information about the Python-de mailing list