Skip to main content

Datenorganisation mit Dictionaries

Dictionaries geben uns die Möglichkeit, zusammengehörende Daten in unseren Programmen zu strukturieren und gemeinsam zu speichern. Als Beispiel betrachten wir eine Funktion, welche Daten einer Person entgegennimmt, und diese formatiert ausgibt. Eine naive Implementation könnte wie folgt aussehen:

def print_address(firstname, lastname, street, street_number, zip_code, city):
print(firstname, ", ", lastname)
print(street, " ", street_number)
print(zip_code, " ", city)

print_address("Anna", "Coder", "Palmenstrasse", 15, 4050, "Basel")

Diese Implementation funktioniert, ist aber unflexibel und nicht elegant. Wenn weitere Felder dazukommen wird die Funktionssignatur sehr lang und unübersichtlich. Auch kann es leicht passieren, dass wir uns vertun und zum Beispiel beim Aufruf Vorname und Name vertauschen. Das grösste Problem aber ist, dass die Daten keine Einheit bilden. Aus dem Code wird nicht klar, dass alle Daten zusammen das Konzept Person abbilden.

Mithilfe von einem Dictionary können wir die Daten zusammenfassen und somit diese Einheit auch im Code ausdrücken. Die Implementation sieht wie folgt aus.


def print_address(person):
print(person["firstname"], ", ", person["lastname"])
print(person["street"], " ", person["street_number"])
print(person["zip_code"], " ", person["city"])


person = {"firstname" : "Anna",
"lastname" : "Coder",
"street" : "Palmenstrasse",
"street_number" : 15,
"zip_code" : 4053,
"city" : "Basel" }


print_address(person)

Die Methode print_address ist genauso klar zu lesen wie zuvor. In dieser Implementation wird aber klar ersichtlich, dass alle Felder zusammengehören und eine Person beschreiben. In der weiteren Verwendung, wie zum Beispiel wenn wir die Personendaten an eine weitere Funktion übergeben wollen, hat diese Form grosse Vorteile und führt zu besser lesbarem Code, der weniger fehleranfällig ist.

Fragen und Kommentare

Haben Sie Fragen oder Kommentare zu diesem Artikel? Nutzen Sie das Forum und helfen Sie sich und Ihren Mitstudierenden dieses Thema besser zu verstehen.