Dictionaries in Python verwalten

PythonBeginner
Jetzt üben

Einführung

In diesem Lab sammeln Sie praktische Erfahrungen mit Python-Dictionaries (Wörterbüchern), einer wesentlichen Datenstruktur zur Speicherung von Daten als Schlüssel-Wert-Paare. Sie lernen, wie man Dictionaries erstellt und inspiziert, auf deren Elemente zugreift und diese modifiziert, Elemente hinzufügt und entfernt sowie mit Dictionary-View-Objekten arbeitet. Am Ende dieses Labs werden Sie in der Lage sein, gängige Dictionary-Operationen sicher durchzuführen.

Dictionaries erstellen und inspizieren

In diesem Schritt lernen Sie, wie man Dictionaries (Wörterbücher) erstellt und inspiziert. Ein Dictionary ist eine Sammlung von Schlüssel-Wert-Paaren, wobei jeder Schlüssel eindeutig sein muss. Dictionaries werden mit geschweiften Klammern {} oder dem dict()-Konstruktor erstellt. Seit Python 3.7 behalten Dictionaries die Reihenfolge bei, in der die Elemente eingefügt wurden.

Öffnen Sie zunächst die Datei main.py im Dateiexplorer auf der linken Seite des VS Code Editors.

Fügen Sie den folgenden Code zu main.py hinzu. Dieses Skript demonstriert verschiedene Möglichkeiten, ein Dictionary zu erstellen.

## Create an empty dictionary using curly braces
empty_dict = {}
print(f"Empty dictionary: {empty_dict}")
print(f"Type of empty_dict: {type(empty_dict)}")

## Create a dictionary with initial key-value pairs
student_info = {'name': 'Alice', 'age': 25, 'major': 'Computer Science'}
print(f"\nStudent info: {student_info}")

## Create a dictionary using the dict() constructor with keyword arguments
student_info_kw = dict(name='Bob', age=22, major='Physics')
print(f"Student info (from keywords): {student_info_kw}")

## Create a dictionary from a list of key-value tuples
student_info_tuples = dict([('name', 'Charlie'), ('age', 28), ('major', 'Chemistry')])
print(f"Student info (from tuples): {student_info_tuples}")

Nachdem Sie den Code hinzugefügt haben, speichern Sie die Datei, indem Sie Strg + S drücken.

Führen Sie nun das Skript aus, indem Sie ein Terminal im VS Code Editor öffnen (Strg + ~) und den folgenden Befehl ausführen:

python main.py

Sie sollten die folgende Ausgabe sehen, die die verschiedenen von Ihnen erstellten Dictionaries anzeigt:

Empty dictionary: {}
Type of empty_dict: <class 'dict'>

Student info: {'name': 'Alice', 'age': 25, 'major': 'Computer Science'}
Student info (from keywords): {'name': 'Bob', 'age': 22, 'major': 'Physics'}
Student info (from tuples): {'name': 'Charlie', 'age': 28, 'major': 'Chemistry'}

Dieser Schritt hat Ihnen die grundlegenden Methoden zur Erstellung von Dictionaries in Python vermittelt, sowohl leere als auch solche mit Anfangsdaten.

Auf Dictionary-Elemente zugreifen und diese modifizieren

In diesem Schritt lernen Sie, wie Sie auf Elemente innerhalb eines Dictionaries zugreifen und diese modifizieren. Sie können einen Wert abrufen, indem Sie auf seinen Schlüssel in eckigen Klammern [] verweisen.

Löschen Sie zunächst den vorherigen Inhalt aus main.py. Fügen Sie dann den folgenden Code in die Datei ein. Dieses Skript demonstriert, wie man auf Dictionary-Daten zugreift und diese modifiziert.

## Define a sample dictionary
student_info = {'name': 'Alice', 'age': 25, 'major': 'Computer Science'}
print(f"Original dictionary: {student_info}")

## Access elements using square brackets
student_name = student_info['name']
print(f"\nStudent Name: {student_name}")

## Using the get() method to access an element
student_age = student_info.get('age')
print(f"Student Age (using get()): {student_age}")

## The get() method can provide a default value if the key is not found
student_city = student_info.get('city', 'Not Specified')
print(f"Student City (with default): {student_city}")

## Modify the value of an existing key
print(f"\nOriginal age: {student_info['age']}")
student_info['age'] = 26
print(f"Modified age: {student_info['age']}")

print(f"\nUpdated dictionary: {student_info}")

Speichern Sie die Datei (Strg + S) und führen Sie das Skript im Terminal aus:

python main.py

Die Ausgabe zeigt, wie Werte abgerufen werden und wie das Dictionary nach einer Modifikation aussieht:

Original dictionary: {'name': 'Alice', 'age': 25, 'major': 'Computer Science'}

Student Name: Alice
Student Age (using get()): 25
Student City (with default): Not Specified

Original age: 25
Modified age: 26

Updated dictionary: {'name': 'Alice', 'age': 26, 'major': 'Computer Science'}

Beachten Sie, dass der Zugriff auf einen nicht existierenden Schlüssel mittels eckiger Klammern [] einen KeyError auslöst, während get() eine sicherere Methode zum Zugriff auf Schlüssel bietet, die möglicherweise nicht existieren.

Dictionary-Elemente hinzufügen und löschen

Dieser Schritt behandelt das Hinzufügen neuer Elemente zu einem Dictionary und das Löschen vorhandener Elemente. Sie können ein neues Schlüssel-Wert-Paar hinzufügen, indem Sie einem neuen Schlüssel einen Wert zuweisen.

Ersetzen Sie den Inhalt von main.py durch den folgenden Code. Dieses Skript demonstriert den gesamten Lebenszyklus von Dictionary-Elementen: Hinzufügen, Aktualisieren und Entfernen auf verschiedene Weisen.

## Define a sample dictionary
student_info = {'name': 'Alice', 'age': 26, 'major': 'Computer Science'}
print(f"Initial dictionary: {student_info}")

## Add a new key-value pair
student_info['city'] = 'New York'
print(f"After adding 'city': {student_info}")

## Delete an element using pop()
## pop() removes the key and returns its value
removed_major = student_info.pop('major')
print(f"\nRemoved major: {removed_major}")
print(f"After pop('major'): {student_info}")

## Delete the last inserted element using popitem()
## popitem() removes and returns the (key, value) pair
removed_item = student_info.popitem()
print(f"\nRemoved item: {removed_item}")
print(f"After popitem(): {student_info}")

## Delete an element using the 'del' statement
del student_info['age']
print(f"\nAfter del student_info['age']: {student_info}")

## The clear() method removes all elements from the dictionary
student_info.clear()
print(f"After clear(): {student_info}")

Speichern Sie die Datei (Strg + S) und führen Sie das Skript aus:

python main.py

Die Ausgabe zeigt das Dictionary in jeder Phase der Modifikation:

Initial dictionary: {'name': 'Alice', 'age': 26, 'major': 'Computer Science'}
After adding 'city': {'name': 'Alice', 'age': 26, 'major': 'Computer Science', 'city': 'New York'}

Removed major: Computer Science
After pop('major'): {'name': 'Alice', 'age': 26, 'city': 'New York'}

Removed item: ('city', 'New York')
After popitem(): {'name': 'Alice', 'age': 26}

After del student_info['age']: {'name': 'Alice'}
After clear(): {}

In diesem Schritt haben Sie gelernt, wie man neue Elemente hinzufügt und wie man sie mithilfe von pop(), popitem(), del und clear() entfernt.

Dictionary View Objects erkunden

In diesem Schritt erkunden Sie die Dictionary View Objects (Ansichtsobjekte). Dies sind dynamische Objekte, die eine Ansicht der Schlüssel, Werte oder Elemente eines Dictionaries bereitstellen. Jede Änderung am Dictionary spiegelt sich sofort in der Ansicht wider.

Ersetzen Sie den Inhalt von main.py durch den folgenden Code:

## Define a sample dictionary
student_info = {'name': 'Alice', 'age': 26, 'major': 'Computer Science'}
print(f"Original dictionary: {student_info}\n")

## Get the view objects
keys_view = student_info.keys()
values_view = student_info.values()
items_view = student_info.items()

print(f"Keys View: {keys_view}")
print(f"Values View: {values_view}")
print(f"Items View: {items_view}")

## Views are dynamic and reflect dictionary changes
print("\n--- Modifying Dictionary ---")
student_info['city'] = 'New York'
print(f"Dictionary after adding 'city': {student_info}")
print(f"Keys View after modification: {keys_view}")
print(f"Values View after modification: {values_view}")

## You can iterate over view objects
print("\n--- Iterating over Keys View ---")
for key in keys_view:
    print(key)

## You can convert views to other data types like lists
keys_list = list(keys_view)
print(f"\nKeys view converted to a list: {keys_list}")

Speichern Sie die Datei (Strg + S) und führen Sie das Skript aus:

python main.py

Die Ausgabe demonstriert die Erstellung, die dynamische Natur und die Iteration über die Ansichtsobjekte:

Original dictionary: {'name': 'Alice', 'age': 26, 'major': 'Computer Science'}

Keys View: dict_keys(['name', 'age', 'major'])
Values View: dict_values(['Alice', 26, 'Computer Science'])
Items View: dict_items([('name', 'Alice'), ('age', 26), ('major', 'Computer Science')])

--- Modifying Dictionary ---
Dictionary after adding 'city': {'name': 'Alice', 'age': 26, 'major': 'Computer Science', 'city': 'New York'}
Keys View after modification: dict_keys(['name', 'age', 'major', 'city'])
Values View after modification: dict_values(['Alice', 26, 'Computer Science', 'New York'])

--- Iterating over Keys View ---
name
age
major
city

Keys view converted to a list: ['name', 'age', 'major', 'city']

In diesem Schritt haben Sie gelernt, wie Sie keys(), values() und items() verwenden, um dynamische Ansichten des Dictionary-Inhalts zu erhalten, was für viele Programmieraufgaben nützlich ist.

Zusammenfassung

In diesem Lab haben Sie praktische Erfahrungen mit Python Dictionaries (Wörterbüchern) gesammelt. Sie begannen mit der Erstellung von Dictionaries mithilfe von geschweiften Klammern {} und dem dict()-Konstruktor. Anschließend lernten Sie, auf Dictionary-Elemente zuzugreifen und diese zu modifizieren, indem Sie die eckige Klammernotation [] und die get()-Methode verwendeten. Danach übten Sie das Hinzufügen neuer Schlüssel-Wert-Paare und deren Entfernung mit verschiedenen Methoden, einschließlich pop(), popitem(), der del-Anweisung und clear(). Abschließend erkundeten Sie die dynamischen Dictionary Views (Ansichtsobjekte) (keys(), values() und items()), verstanden, wie diese Änderungen im Dictionary widerspiegeln, und wie man darüber iteriert.