LU14b - Dictionary

Ein Dictionary ist eine Datenstruktur in Python. Die Einträge im Dictionary bestehen aus einem Schlüssel (Key) und einem Wert (Value).

Schlüssel

Dictionaries in Python sind ähnliche Datenstrukturen wie Listen. Bei einer Liste werden die einzelnen Elemente über eine fortlaufende Nummer (Index, Position) identifiziert. Im Dictionary werden die Elemente über einen von uns definierten Schlüssel identifiziert. Der Schlüssel muss eindeutig sein, es können als nicht zwei oder mehr Elemente den gleichen Schlüssel haben.

Verarbeitungen mit Dictionary

Anlegen

Wir definieren einen Dictionary indem wir die geschweiften Klammern { } verwenden. Jedes Element wird mit Schlüssel : Wert definiert.

Um die Übersicht zu vereinfachen, können wir jedes Schlüssel/Wert-Element auf eine eigene Zeile schreiben.

colors = {
          'red': '#ff0000', 
          'green': '#00ff00', 
          'blue': '#0000ff'
         }
print(colors)
Output
{'red': '#ff0000', 'green': '#00ff00', 'blue': '#0000ff'}

Wenn der Schlüssel ein einzelnes Wort ist, können wir den Befehl dict verwenden.

colors = (
          red='#ff0000', 
          green='#00ff00', 
          blue='#0000ff'
         )
print(colors)
Output
{'red': '#ff0000', 'green': '#00ff00', 'blue': '#0000ff'}

Elemente einfügen / ändern

Nachdem der Dictionary erstellt ist, können wir Elemente einfügen bzw. ändern. Dazu geben wir den Schlüssel in eckigen Klammern [ ] an.

colors = {'red': '#ff0000', 'green': '#00ff00', 'blue': '#0000ff'}
colors['indigo'] = '#4B0082'  # adds a new key/value
colors['blue']   = '#000080'  # replaces the value for 'blue'
print(colors)
Output
{'red': '#ff0000', 'green': '#00ff00', 'blue': '#000080', 'indigo': '#4B0082'}

Elemente löschen

Der Befehl del löscht ein Element aus dem Dictionary.

colors = {'red': '#ff0000', 'green': '#00ff00', 'blue': '#0000ff'}
del colors['green']   # Removes the element with the key 'green'
print(colors)
Output
{'red': '#ff0000', 'blue': '#0000ff'}

Einzelne Elemente lesen

Wir können die Element über ihren Schlüssel in den eckigen Klammern lesen.

Wollen wir wissen, ob ein bestimmter Schlüssel exisitert, so verwenden wir if … in ….

colors = {'red': '#ff0000', 'green': '#00ff00', 'blue': '#0000ff'}
print(colors['green'])  # prints the value #00ff00
if 'pink' in colors:
    print ('Pink!!')
else:
    print ('No pink found')
Output
#00ff00
No pink found

Lesen nach Wert

Es existiert keine Funktion um ein Element anhand seines Werts zu lesen. Wir können uns behelfen, indem wir die Schlüssel und Werte in separate Listen umwandeln.

colors = {'red': '#ff0000', 'green': '#00ff00', 'blue': '#0000ff'}
hex_values = list(colors.values())
color_names = list(colors.keys())
index = hex_values.index('#00ff00')
print(color_names[index])
Output
green

Alle Elemente verarbeiten

Mit einem for-Loop können wir alle Elemente eines Dictionarys verarbeiten.

colors = {'red': '#ff0000', 'green': '#00ff00', 'blue': '#0000ff'}
for color_name in colors:    # loops through the keys
    print(color_name)
 
for key, value in colors.items():    # loops through the keys and values
    print(f'The hexcode for {key} is {value}')
Output
red
green
blue
The hexcode for red is #ff0000
The hexcode for green is #00ff00
The hexcode for blue is #0000ff

Sortieren

Mit dem sorted-Befehl können wir die Elemente nach ihrem Schlüssel sortieren.

colors = {'red': '#ff0000', 'green': '#00ff00', 'blue': '#0000ff'}
for name in sorted(colors.items()):
    print(f'The hexcode for {name} is {colors[name]}')
Output
The hexcode for blue is #0000ff
The hexcode for green is #00ff00
The hexcode for red is #ff0000

Marcel Suter