Das ist das gleiche, was du im Moment auch hast. Die Reihenfolge geht genau so verloren wie bei dir. Dadurch, dass du die Liste ORDER speicherst, bleibt auch die Reihenfolge zur Ausgabe erhalten. Dein selbst geschriebenes Beispiel trifft es schon genau richtig, nur das es in Zeile 39 nicht "for key in pairs:" heißen darf, sondern "for key in keys". "keys" (was dan KEYS heißen sollte) kannst du dann als Konstante ruhig global machen.Seeker hat geschrieben:Aber irgendwie bekomme ich dann schnell Probleme. Die Liste 'order' habe ich ja erstellt, damit die Angaben in einer bestimmten Reihenfolge ausgegeben werden. Wenn ich die Liste in das Dictionary nehme, geht das wieder verloren. Die einzige Möglichkeit wäre wieder, die Liste separat mitzunehmen.
[quote="Seeker]Aber ansonsten müsste ich ja für jedes Attribut ein print-statement machen (um zu spezifizieren, was vorne dran steht), nicht? Dazu kommt, dass ich dann wieder eine ganze Reihe von if-statements machen müsste.[/quote]
Oder ein Dictionary oder eine Liste

Nee, du benutzt einfach die vorhandenen Typen:Seeker hat geschrieben:Dafür müsste ich aber zuerst eine Klasse aufbauen, oder?
Code: Alles auswählen
if isinstance(person_info[key], list):
print "\n".join(person_info[key])
else:
print person_info[key]
Das sind keine global definierten Argumente, das sind Konstanten. Solange du sie nicht als Argumente oder Rückgabewerte verwendest, können sie auch global definiert werden.Seeker hat geschrieben:Ja, dann ist alles klar. Ich hatte meinen Weg nur gewählt, um eben eine global definiertes Argument zu vermeiden. Wenn ich das Modul phonebook.py als ganzes importiere, würde diese globale Konstante dann auch mit-importiert werden, oder?
Bei einem Import werden die Konstanten natürlich auch mit importiert, darum brauchst du dir aber keine Gedanken machen. Außer du machst einen *-Import, dann machst du aber etwas falsch
