Python
Python Grundlagen
 – Video

Ein Python Dictionary ist eine gute Möglichkeit, Tabellen, Messdaten, Mapping und vieles mehr in deine Programme einzubauen. Wie du es benutzt und was du beachten musst, zeigen wir dir hier. Schaue dir auch unser passendes Video an!

Python Dictionary einfach erklärt

Ein Python Dictionary ist eine duplikatfreie Liste von geordneten Schlüssel-Wert-Paaren (engl. ordered collection of key-value-pairs). Was bedeutet das? In einem Dictionary — oder auch dict — kannst du Werte speichern. Jeder dieser Werte muss einen Schlüssel haben. Der Schlüssel funktioniert ähnlich wie ein Variablenname. Ein dict enthält keine Duplikate. Das heißt, du darfst jeden Schlüssel nur einmal pro Dictionary benutzen.

Wie erstellt man ein Dictionary? Du erstellst es ähnlich wie eine Liste. Jedes dict steht zwischen geschweiften Klammern {}. Du kannst dann so viele Schlüssel-Werte-Paare mit Kommata getrennt in die Klammern schreiben, wie du willst. Zwischen dem Schlüssel und seinem Wert darfst du den Doppelpunkt nicht vergessen ("vorname": "Max")!

Dein Dictionary kannst Du jetzt auslesen, indem du hinter den Namen deines dicts den richtigen Schlüssel in eckige Klammern setzt (person["vorname"]).

Eingabe:

1 person = {"vorname": "Max", "name": "Mustermann"}
2 print(person["vorname"])
3 print(person["name"])

Ausgabe:

Max
Mustermann

Python Dictionary erzeugen

Musst du noch etwas beachten, wenn du ein Dictionary erzeugen willst? Beim Aussuchen deiner Schlüssel musst du aufpassen. Du darfst nur sogenannte unveränderliche Objekte benutzen. Das sind zum Beispiel Zahlen und Zeichenketten. Außerdem darfst du niemals einen Schlüssel in einem gleichen dict wiederholen. Bei den Werten deines Dictionaries gibt es aber keine Einschränkungen. Dort darfst du jeden Datentyp und jedes Objekt — sogar andere Dictionaries — benutzen, die du kennst.

1 dictionary = {1: [2, 3], "ABC": 3.14, 2.72: "Euler" }

Du kannst aber auch aus einer Liste von Tupeln mit Key-Value-Pairs("ABC", 3.14)ein Dictionary erzeugen. Dafür musst du nur die dict-Funktion benutzen: 

2 dictionary = dict([ (1, [2, 3]), ("ABC", 3.14), (2.72, "Euler") ])

Wenn du eine Liste mit Werten und eine zweite Liste mit Schlüsseln hast, kannst du dir mit der zip-Funktion ein Dictionary bauen:

3 key = [1, "ABC", 2.72]
4 value = [ [2, 3], 3.14, "Euler" ]
5 dictionary = dict(zip(key, value))

Python Dictionary verändern

Du kannst sogar Key-Value-Pairs nachträglich hinzufügen (engl. python dictionary append), verändern und entfernen. Ein bestehendes Schlüssel-Wert-Paar änderst du, indem du dem Schlüssel einen neuen Wert zuweist (Zeile 2).

Eingabe:

1 wochentage = {"Mo": "Montag", "Di": "???", "Mi": "Mittwoch", "Do": "Donnerstag", "Fr": "Freitag", "Sa": "Samstag"}
2 wochentage["Di"] = "Dienstag"
3 print(wochentage)

Ausgabe:

{"Mo": "Montag", "Di": "Dienstag", "Mi": "Mittwoch", "Do": "Donnerstag", "Fr": "Freitag", "Sa": "Samstag"}

Python Dictionary Append 

Auf die gleiche Weise kannst du deinem Dictionary auch neue Key-Value-Pairs hinzufügen. Wenn du einem Schlüssel, den es in deinem dict noch gar nicht gibt, einen Wert zuweist, fügt Python das neue Schlüssel-Wert-Paar deinem Dictionary hinzu.

Eingabe:

4 wochentage["So"] = "Sonntag"
5 print(wochentage)

Ausgabe:

{"Mo": "Montag", "Di": "Dienstag", "Mi": "Mittwoch", "Do": "Donnerstag", "Fr": "Freitag", "Sa": "Samstag", "So": "Sonntag"}

Python Dictionary pop

Das Entfernen von Schlüssel-Wert-Paaren geht natürlich auch. Mit der Funktion pop() entfernst du ein bestimmtes Key-Value-Pair, indem du den entsprechenden Schlüssel in runden Klammern hinter pop schreibst. Du kannst dann den Wert, den du aus deinem Dictionary entfernst, in einer neuen Variable speichern.

Eingabe:

6 tag = wochentage.pop("Di")
7 print(tag)
8 print(wochentage)

Ausgabe: 

Dienstag
{"Mo": "Montag", "Mi": "Mittwoch", "Do": "Donnerstag", "Fr": "Freitag", "Sa": "Samstag", "So": "Sonntag"}

Mit der Funktion popitem() kannst du das letzte Schlüssel-Werte-Paar aus deinem Dictionary entfernen. Hier kannst du dir sogar den Wert und den Schlüssel als Tupel in einer neuen Variable speichern.

Eingabe:

 9 letzter_tag = wochentage.popitem()
10 print(letzter_tag)
11 print(wochentage)

Ausgabe:

("So", "Sonntag")
{"Mo": "Montag", "Mi": "Mittwoch", "Do": "Donnerstag", "Fr": "Freitag", "Sa": "Samstag"}

Python Dictionary del

Falls du das entfernte Schlüssel-Wert-Paar nicht in einer neuen Variable speichern willst, kannst du auch den Befehl del benutzen. Schreibe dafür zuerst del und dahinter das Key-Value-Pair, das du löschen (engl. delete) möchtest.

Eingabe:

12 del wochentage["Mi"]
13 print(wochentage)

Ausgabe:

{"Mo": "Montag", "Do": "Donnerstag", "Fr": "Freitag", "Sa": "Samstag"}

Da musst du aber aufpassen! Wenn du keinen Schlüssel angibst, löscht Python dein ganzes Dictionary und du kannst es nicht mehr benutzen.

14 del wochentage

Python Dictionary Comprehension

Es gibt noch eine Möglichkeit, ein Dictionary zu erzeugen: Die Dictionary Comprehension. Falls du schon die List Comprehension kennst, wird dir das bekannt vorkommen. Mit einer Comprehension kannst du in einer Zeile aus einem alten iterierbaren Objekt, z.B. Listen und Dictionaries, ein neues Dictionary bauen.

Wie funktioniert so eine Comprehension? Am besten verstehst du sie, wenn du sie von hinten nach vorne liest(Zeile 2). Jede Dictionary Comprehension steht in geschweiften Klammern. Ans Ende schreibst du hinter den Befehl in ein iterierbares Objekt, zum Beispiel eine Liste oder ein Dictionary, aus deren Elemente du dein neues Dictionary bauen willst (in alte_liste). Davor kommt das Schlüsselwort for und ein neuer Variablenname (for zahl). Mit der Variable zahl kannst du dann auf die Elemente deiner Liste alte_liste zugreifen. Am Anfang schreibst du dann eine Formel, mit der Python ein Schlüssel-Wert-Paar für dein neues Dictionary bauen kann (zahl:zahl**2).

Eingabe:

1 alte_liste = [1, 2, 3, 4, 5, 6, 7]
2 neues_dict = { zahl:zahl**2 for zahl in alte_liste }
3 print(neues_dict)

Ausgabe:

{ 1: 1, 
2: 4,
3: 9,
4: 16,
5: 25,
6: 36,
7: 49 }

Hier wird also für jede Zahl in der Liste alte_liste ein Schlüssel-Werte-Paar in dem Dictionary neues_dict erstellt. Der Schlüssel ist dann das ursprüngliche Listenelement (zahl) und der zugehörige Wert ist sein Quadrat (zahl**2).

Schleife mit Dictionary

Natürlich kannst du mit Dictionaries auch for-Schleifen (engl. for-Loop) bauen. 

Beim Dictionary gibt es die Funktion items(). Wenn du über dict.items() anstelle deines eigentlichen dicts iterierst, kannst du auf den Schlüssel und seinen Wert zugreifen (Zeile 2).

Eingabe:

1 my_dict = {"e": 2.72, "pi": 3.14, "tau": 6.28}
2 for schluessel, wert in my_dict.items():
3 print(f"{schluessel} = {wert}")

Ausgabe:

e = 2.72
pi = 3.14
tau = 6.28

Wenn du dir noch mal anschauen magst, wie for-Loops funktionieren, haben wir dir auch dafür ein Video vorbereitet.

Zum Video: Python for-Loop
Zum Video: Python for-Loop

Hallo, leider nutzt du einen AdBlocker.

Auf Studyflix bieten wir dir kostenlos hochwertige Bildung an. Dies können wir nur durch die Unterstützung unserer Werbepartner tun.

Schalte bitte deinen Adblocker für Studyflix aus oder füge uns zu deinen Ausnahmen hinzu. Das tut dir nicht weh und hilft uns weiter.

Danke!
Dein Studyflix-Team

Wenn du nicht weißt, wie du deinen Adblocker deaktivierst oder Studyflix zu den Ausnahmen hinzufügst, findest du hier eine kurze Anleitung. Bitte lade anschließend die Seite neu.