dict

Übersicht: Python & Blender


In anderen Programmiersprachen spricht man von »Assoziativen Arrays«, in Python nennt sich der Datentyp Dictionary. Wie sie funktionieren, wird hier demonstriert.

Handlungsanweisungen

Aufgaben:
  1. Erstelle ein Script: dictionaries.py
  2. Erstelle eine zweite Version des Kühlschrankbeispiels entsprechend der Station zum Datentyp Listen.
  3. Erweitere das Pilzbeispiel und erzeuge eine komplette HTML-Seite mit Print-Anweisungen.

Eigenschaften...

  • Dictionaries werden als Mapping-Typ (Abbildungstyp) bezeichnet.
  • Sie sind vergleichbar mit den assoziativen Arrays anderer Programmiersprachen.
  • Sie werden durch ein Paar geschweifter Klammern {} dargestellt und enthalten immer Name/Wert-Paare, die durch einen Doppelpunkt getrennt werden.
  • Die Reihenfolge der Werte im Dictionary ist zufällig.

Beispiel

blume = {'Rose':'rot', 'Nelke':'weiß', 'Stiefmütterchen':'blau'}

Nun lassen sich folgende Methoden auf das Dictionary "blume" anwenden:

Methode Anmerkung Beispiel
clear() löscht alle Einträge aus dem Dictionary blume.clear() ergibt ein leeres dictionary {}
copy() legt eine Kopie von blume an blumenladen = blume.copy()
has_key() liefert den Wahrheitswert 1, falls der Eintrag existiert, ansonsten 0 blume.has_key('Nelke')
items() listet alle Schlüssel und Werte als Tupel auf blume.items()
keys() liefert eine Liste mit allen Schlüsseleinträgen blume.keys()
update() aktualisiert jedes Name/Wert-Paar
blumenladen['Rose'] = 'gelb'
blume.update(blumenladen)
get() liefert den Wert, falls er existiert
blume.get('Nelke')
blume.get('xyz','???')

Ausgabe von Dictionary-Werten

# Ein Dictionary füllen...

pilze = {} # ein leeres Dictionary
pilze['Steinpilz'] = ['x-mal essbar', "Mischwaelder"]
pilze['Fliegenpilz'] = ["1-mal essbar", "Nadelwaelder"]
pilze['Marone'] = ["x-mal essbar", "Mischwaelder"]
pilze['Tintling'] = ['x-mal essbar', "Wiesen und Strassenraender"]

# Nun die Ausgabe:

print('''Der Inhalt des Dictionary pilze:\n ''')

for i in pilze.keys():
    print("""Pizart= {},
             essbar= {},
             vorkommen= {}; """.format(i,
                                       pilze[i][0],
                                       pilze[i][1]))

In diesem Beispiel finden wir fast alle eingebauten Datentypen.

  • Dictionary = pilze
  • Liste = als Ergebnis der Methode keys()
  • Tupel = als Parameter für die print-Anweisung

Weitere Ausgabevarianten ergeben sich durch die Kombination mit dem Slicing-Operator und der moderneren format-Funktion.

Kommentare