geordnetes dict

18/04/2013 - 22:51 von Philipp Kraus | Report spam
Hallo,

ich habe jetzt 2 Tage an einem Fehler gehangen, weil ich selbst nicht
an die passende Datenstruktur gedacht habe:

Ich habe ein dict in der Form:

x = {
"first" : {.},
"second" : {},
"aaa" : {},
}

so ist es jedenfalls im Quellcode definiert, ich iteriere nun über das
dict, aber ich muss die Reihenfolge
beibehalten (ich hatte daran nicht gedacht). Die Reihenfolge muss exakt
so sein, wie im Code angegeben
also first, second, aaa, real ist sie aber aaa, first, second und das
führt bei mir zu einem Fehler.

Ich hatte gesehen, dass es Komponenten wie z.B. das StableDict gibt.
Meine Frage ist aber, ob man so etwas
auch ohne zusàtzliche Komponenten realisieren kann. Mein erster Gedanke
war, dies so zu machen:

x = [
{ "first" : {...} },
{ "second" : {...} ),
{ "aaa" : {...} }
]

aber damit habe ich nicht mehr die Eindeutigkeit der Eintràge gegeben.
Was gibt es für Möglichkeiten
ab Python 2.6 dieses Problem sinnvoll zu lösen?

Danke

Phil
 

Lesen sie die antworten

#1 Daniel Szoska
18/04/2013 - 23:10 | Warnen spam
Hallo Philipp,

ab Python 2.7 gibt es OrderedDict (http://docs.python.org/2.7/library/...rderedDict).

Da Du aber nach Python 2.6 gefragt hast, kàme zum Beispiel das in Frage: http://code.activestate.com/recipes/576693/

LG Daniel

Am 18.04.2013 um 22:51 schrieb Philipp Kraus :

Hallo,

ich habe jetzt 2 Tage an einem Fehler gehangen, weil ich selbst nicht an die passende Datenstruktur gedacht habe:

Ich habe ein dict in der Form:

x = {
"first" : {.},
"second" : {},
"aaa" : {},
}

so ist es jedenfalls im Quellcode definiert, ich iteriere nun über das dict, aber ich muss die Reihenfolge
beibehalten (ich hatte daran nicht gedacht). Die Reihenfolge muss exakt so sein, wie im Code angegeben
also first, second, aaa, real ist sie aber aaa, first, second und das führt bei mir zu einem Fehler.

Ich hatte gesehen, dass es Komponenten wie z.B. das StableDict gibt. Meine Frage ist aber, ob man so etwas
auch ohne zusàtzliche Komponenten realisieren kann. Mein erster Gedanke war, dies so zu machen:

x = [
{ "first" : {...} },
{ "second" : {...} ),
{ "aaa" : {...} }
]

aber damit habe ich nicht mehr die Eindeutigkeit der Eintràge gegeben. Was gibt es für Möglichkeiten
ab Python 2.6 dieses Problem sinnvoll zu lösen?

Danke

Phil

_______________________________________________
python-de maillist -
http://mail.python.org/mailman/listinfo/python-de



Daniel Szoska
Rechenzentrum für Berliner Apotheken Stein & Reichwald GmbH
Schulstr. 20
15366 Neuenhagen bei Berlin

Tel. 03342/211999-1
Fax 03342/211999-2
Mail

IK Apotheken: 300802830
IK sonst. LE: 661200128
_______________________________________________________________________

Geschàftsführer: Amtsgericht Steuernummer: USt-IdNr.:
Daniel Szoska Frankfurt (Oder) 064/117/01849 DE136744915
HRB 11605 FF

Ähnliche fragen