CodeGym /Java Kurs /Python SELF DE /Sammlung Dictionary

Sammlung Dictionary

Python SELF DE
Level 11 , Lektion 1
Verfügbar

1.1 Dictionary und seine Eigenschaften

Ein Dictionary in Python ist eine geordnete Sammlung von Schlüssel-Wert-Paaren, bei der jeder Schlüssel einzigartig ist. Dictionaries sind einer der flexibelsten und leistungsstärksten Datentypen in Python und werden zur Speicherung und Verwaltung von Daten verwendet. Wir werden sie sehr oft benutzen, fast genauso oft wie Listen. Bald wirst du es selbst sehen :)

Die Hauptmerkmale von Dictionaries:

1. Einzigartige Schlüssel

Jeder Schlüssel in einem Dictionary muss einzigartig sein. Wenn ein Schlüssel-Wert-Paar mit einem bereits vorhandenen Schlüssel hinzugefügt wird, wird der alte Wert durch den neuen ersetzt. Zum Beispiel, wenn du Daten über Studenten speichern möchtest und ihre Identifikatoren als Schlüssel verwendest:


students = {"123": "John", "124": "Alice", "123": "Mike"}
print(students)  # Ausgabe: {'123': 'Mike', '124': 'Alice'}

2. Ordnung

Wichtig! Bis zur Version Python 3.7 waren Dictionaries ungeordnete Sammlungen, d.h. die Reihenfolge der Elemente war nicht garantiert. Ab Python 3.7 behalten Dictionaries die Reihenfolge der hinzugefügten Elemente bei, aber dieser Aspekt ist kein obligatorischer Teil der Sprachspezifikation bis zur Version Python 3.8, wo es zum Standard wurde.

Das war vor 5 Jahren. Wir lernen Python basierend auf Version 3.12, also kannst du Dictionary bedenkenlos als geordnete Menge von Elementen betrachten.

3. Veränderbarkeit

Dictionaries sind veränderbar, was bedeutet, dass du Elemente nach der Erstellung eines Dictionaries hinzufügen, ändern oder löschen kannst. Zum Beispiel fügen wir die Adresse eines Studenten hinzu:


student = {"name": "John", "age": 20}
student["address"] = "123 Main St"
print(student)  # Ausgabe: {'name': 'John', 'age': 20, 'address': '123 Main St'}

4. Effizienz

Dictionaries sind für schnellen Zugriff, schnelles Hinzufügen und Entfernen von Schlüssel-Wert-Paaren optimiert. Im Durchschnitt werden Such-, Hinzufüge- und Löschoperationen in konstanter Zeit ausgeführt, O(1). Was Algorithmuskomplexität bedeutet, wirst du später erfahren, wenn wir das Thema „Algorithmen und Datenstrukturen“ behandeln.

5. Schlüssel und Werte

Schlüssel in einem Dictionary können jeder unveränderbare Datentyp sein, wie Strings, Zahlen oder Tupel. Werte können jedem Datentyp angehören, einschließlich anderer Dictionaries.

6. Zugriffsmethoden und Änderungen

Dictionaries unterstützen verschiedene Methoden für den Zugriff auf Elemente, das Hinzufügen, Ändern und Entfernen von Schlüssel-Wert-Paaren. Einige dieser Methoden umfassen get(), keys(), values(), items(), update(), pop(), und andere. Mehr dazu in den nächsten Vorlesungen.

7. Iterieren über Elemente

Du kannst über Schlüssel, Werte oder Schlüssel-Wert-Paare in einem Dictionary mit Schleifen iterieren. Dies ermöglicht es einfach, Operationen auf den Elementen des Dictionaries durchzuführen. Zum Beispiel:


student = {"name": "John", "age": 20, "address": "123 Main St"}
for key, value in student.items():
    print(f"{key}: {value}")

Die Ausgabe wird sein:

name: John
age: 20
address: 123 Main St

8. Hashbarkeit der Schlüssel

Schlüssel in einem Dictionary müssen hashable sein. Das bedeutet, dass Schlüssel einen Hash-Wert haben müssen, der sich nicht während ihrer Lebensdauer ändert. Ein Hash-Wert wird mit Hilfe einer Hash-Funktion erhalten, einem Algorithmus, der Eingabedaten beliebiger Länge in einen Ausgabewert fester Länge umwandelt. Genau das nennt man Hash-Wert oder Hash-Code. Unveränderbare Datentypen, wie Strings, Zahlen und Tupel, sind hashfähig und können als Schlüssel verwendet werden.

Mehr über Hash-Funktionen und Hashbarkeit erfährst du im Thema „Algorithmen und Datenstrukturen“.

1.2 Erstellen eines Dictionaries mit {}

Dictionaries in Python können auf verschiedene Arten erstellt werden. Hier sind verschiedene Möglichkeiten, ein Dictionary-Objekt mit Beispielen zu erstellen:

Verwendung von geschweiften Klammern {}

Die gebräuchlichste Methode, ein Dictionary zu erstellen, ist die Verwendung von geschweiften Klammern mit durch Kommas getrennten Schlüssel-Wert-Paaren. Das Schlüssel-Wert-Paar wird mit einem Doppelpunkt getrennt.


# Erstellen eines leeren Dictionaries
empty_dict = {}

# Erstellen eines Dictionaries mit Elementen
person = {
    "name": "John",
    "age": 30,
    "city": "New York"
}
print(type(person))
print(person)

Wichtig! Das Erstellen eines Dictionaries ähnelt der Erstellung eines Sets. Man kann im Prinzip sogar ein Dictionary als Set betrachten, bestehend aus Schlüsseln, denen Werte zugeordnet sind.

Wenn in geschweiften Klammern nur „Schlüssel“ stehen, wird ein Set erstellt, wenn nach den Schlüsseln ein Doppelpunkt und Werte angegeben werden, wird ein Dictionary erstellt. Leere geschweifte Klammern sind immer ein Dictionary.


# Erstellen eines leeren Dictionaries
empty_dict = {}

# Erstellen eines Sets mit Elementen
unique_items = {
    "name",
    "age",
    "city"
}
print(type(unique_items))
print(unique_items)

1.3 Erstellen eines Dictionaries mit der Funktion dict()

Die Funktion dict() kann verwendet werden, um ein Dictionary aus einer Sequenz von Schlüssel-Wert-Paaren oder aus benannten Argumenten zu erstellen.

Beispiel mit einer Sequenz von Schlüssel-Wert-Paaren:


# Erstellen eines Dictionaries aus einer Liste von Tupeln
person = dict([("name", "John"), ("age", 30), ("city", "New York")])
print(person)

Beispiel mit benannten Argumenten. Zusätzliche Klammern sind hier nicht notwendig:


# Erstellen eines Dictionaries mit benannten Argumenten
person = dict(name="John", age=30, city="New York")
print(person)

Verwendung der Methode dict.fromkeys()

Die Methode fromkeys() erstellt ein Dictionary mit den angegebenen Schlüsseln und einem Standardwert.


# Erstellen eines Dictionaries mit Schlüsseln und einem Standardwert
keys = ["name", "age", "city"]
default_value = None
person = dict.fromkeys(keys, default_value) 
print(person)

Das Dictionary wird drei Schlüssel haben, aber alle werden den gleichen Wert enthalten.

1.4 Erstellen eines Dictionaries aus vorhandenen Variablen

Dictionaries können erstellt werden, indem Variablen als Schlüssel und Werte verwendet werden.


# Erstellen eines Dictionaries aus Variablen
name = "John"
age = 30
city = "New York"

person = {"name": name, "age": age, "city": city}
print(person)

1.5 Verwendung von Dictionary-Comprehensions

Dictionary-Comprehensions erlauben es, Dictionaries mit kurzen und prägnanten Konstrukten zu erstellen, die ähnlich wie List-Comprehensions sind.


# Erstellen eines Dictionaries mit einem Dictionary-Comprehension
squares = {x: x**2 for x in range(1, 6)}
print(squares)

1.6 Zugriff auf Werte in einem Dictionary

Um auf einen Wert über seinen Schlüssel zuzugreifen, wird die Syntax [] verwendet:


# Zugriff auf Werte in einem Dictionary
person = {"name": "John", "age": 30, "city": "New York"}
print(person["name"])  # Ausgabe: John

Wichtig! Wenn der Schlüssel nicht gefunden wird, tritt ein Fehler KeyError auf. Um das zu vermeiden, kann die Methode get() verwendet werden, die den Wert zum Schlüssel zurückgibt, falls der Schlüssel existiert, oder None (oder einen anderen Standardwert), falls der Schlüssel nicht gefunden wird.


# Verwendung der Methode get() für den Zugriff auf Werte in einem Dictionary
person = {"name": "John", "age": 30, "city": "New York"}
print(person.get("name"))  # Ausgabe: John
print(person.get("address", "Adresse nicht gefunden"))  # Ausgabe: Adresse nicht gefunden

1.7 Ändern von Werten in einem Dictionary

Werte in einem Dictionary können geändert werden, indem man auf sie über ihren Schlüssel zugreift und einen neuen Wert zuweist.


# Ändern von Werten in einem Dictionary
person = {"name": "John", "age": 30, "city": "New York"}
person["age"] = 31
print(person)  # Ausgabe: {'name': 'John', 'age': 31, 'city': 'New York'}

1.8 Löschen von Elementen aus einem Dictionary

Elemente können mit dem Operator del oder der Methode pop() gelöscht werden.


# Löschen eines Elements mit del
person = {"name": "John", "age": 30, "city": "New York"}
del person["age"]
print(person)  # Ausgabe: {'name': 'John', 'city': 'New York'}

# Löschen eines Elements mit pop()
person = {"name": "John", "age": 30, "city": "New York"}
age = person.pop("age")
print(person)  # Ausgabe: {'name': 'John', 'city': 'New York'}
print(age)     # Ausgabe: 30

1.9 Überprüfung der Existenz eines Schlüssels in einem Dictionary

Du kannst überprüfen, ob ein Schlüssel in einem Dictionary enthalten ist, indem du den Operator in verwendest.


# Überprüfung der Existenz eines Schlüssels in einem Dictionary
person = {"name": "John", "age": 30, "city": "New York"}
print("name" in person)  # Ausgabe: True
print("address" in person)  # Ausgabe: False

1.10 Iteration über Elemente eines Dictionaries

Du kannst über Schlüssel, Werte oder Schlüssel-Wert-Paare in einem Dictionary iterieren:


# Iteration über Schlüssel eines Dictionaries
person = {"name": "John", "age": 30, "city": "New York"}
for key in person:
    print(key)

# Iteration über Werte eines Dictionaries
for value in person.values():
    print(value)

# Iteration über Schlüssel-Wert-Paare eines Dictionaries
for key, value in person.items():
    print(f"{key}: {value}")

1.11 Beispiele für die Verwendung von Dictionaries bei realen Aufgaben

Schauen wir uns einige Beispiele aus dem wirklichen Leben an, in denen die Verwendung von Dictionaries nützlich sein kann:

Beispiel 1: Zählen der Häufigkeit von Wörtern in einem Text

Angenommen, wir haben einen Text und möchten zählen, wie oft jedes Wort in diesem Text vorkommt.


text = "hello world hello"
word_count = {}
for word in text.split():
    if word in word_count:
        word_count[word] += 1
    else:
        word_count[word] = 1
print(word_count)  # Ausgabe: {'hello': 2, 'world': 1}

Beispiel 2: Speichern von Daten über Studenten

Wir können ein Dictionary verwenden, um Daten über Studenten zu speichern, wobei die Schlüssel ihre Identifikatoren sind und die Werte ihre Daten.


students = {
    "123": {"name": "John", "age": 20, "major": "Computer Science"},
    "124": {"name": "Alice", "age": 22, "major": "Mathematics"}
}
print(students["123"]["name"])  # Ausgabe: John

Beispiel 3: Telefonbuch

Dictionaries können verwendet werden, um ein einfaches Telefonbuch zu erstellen, bei dem die Schlüssel die Namen und die Werte die Telefonnummern sind.


phone_book = {
    "John": "123-456-7890",
    "Alice": "987-654-3210"
}
print(phone_book["Alice"])  # Ausgabe: 987-654-3210
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION