Einführung
In diesem Lab werden wir Datenstrukturen in Python lernen. Die Hauptinhalte der Datenstrukturen, mit denen wir arbeiten werden, sind: Listen, Tupel, Wörterbücher und Mengen.
Ziele
- Listen
- List Comprehensions
- Tupel
- Wörterbücher
- Mengen
💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken
In diesem Lab werden wir Datenstrukturen in Python lernen. Die Hauptinhalte der Datenstrukturen, mit denen wir arbeiten werden, sind: Listen, Tupel, Wörterbücher und Mengen.
In Python dienen Listen als vielseitige Container, die verschiedene Arten von Objekten aufnehmen können. Hier werden wir grundlegende Listenoperationen wie die Erstellung, den Zugriff auf Werte, das Aktualisieren von Werten, das Anhängen von Werten und das Löschen von Werten untersuchen.
Listen werden mit durch Kommas getrennten Werten definiert, die in eckige Klammern eingeschlossen sind. Die Datenelemente in einer Liste müssen nicht vom gleichen Typ sein.
>>> l1 = [1, 2, 3, 'a', 'hello']
>>> l1
[1, 2, 3, 'a', 'hello']
>>> l2 = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday']
>>> l2
['monday', 'tuesday', 'wednesday', 'thursday', 'friday']
Verwenden Sie den Index in eckigen Klammern, um auf die Werte in der Liste zuzugreifen.
>>> print("l1[0] = ", l1[0])
l1[0] = 1
Sie können die Form mit eckigen Klammern verwenden, um Zeichen wie folgt abzuschneiden. Dies wird als "Slice" (Schnitt) bezeichnet. Ein Slice ist eine Methode, um einen Bereich von Elementen aus einer Liste zu extrahieren.
list_name[Start:End:Step]
Der erste Index (Start) ist der Startindex, und der zweite Index (End) ist der Endindex. Der dritte Index (Step) ist der Schritt, wobei der Schritt die Inkrementierung angibt (Standardwert 1).
>>> print("l2[1:3] = ", l2[1:3])
l2[1:3] = ['tuesday', 'wednesday']
Sie können den Wert aktualisieren, indem Sie mit dem Index in eckigen Klammern auf den Wert zugreifen und dann einen neuen Wert zuweisen:
>>> l1[0] = 10
>>> l1
[10, 2, 3, 'a', 'hello']
Sie können Werte an die Liste anhängen, indem Sie die Methode append()
verwenden.
list_name.append(value)
>>> l1.append('b')
>>> l1
[10, 2, 3, 'a', 'hello', 'b']
>>> l2.append('statuday')
>>> l2
['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'statuday']
Sie können Werte aus der Liste löschen, indem Sie das Schlüsselwort del
verwenden. Diese Methode löscht das Element am angegebenen Index aus der Liste.
del list_name[index]
>>> del l1[0]
>>> l1
[2, 3, 'a', 'hello', 'b']
Und Sie können auch die Methode remove()
verwenden, um den angegebenen Wert aus der Liste zu löschen.
list_name.remove(value)
>>> l1.remove('a')
>>> l1
[2, 3, 'hello', 'b']
Sie können die Funktion len()
verwenden, um die Länge einer Liste zu erhalten.
>>> print("Length of l1 = ", len(l1))
Length of l1 = 5
Und die Funktion sorted()
verwenden, um die Liste zu sortieren.
>>> print("Sorted of l2 = ", sorted(l2))
Sorted of l2 = ['friday', 'monday', 'thursday', 'tuesday', 'wednesday']
List Comprehension ist eine kompakte und leistungsstarke Methode zur Erstellung von Listen in Python. Dabei wird über ein bestehendes iterierbares Objekt, wie z. B. eine Liste, iteriert und eine Expression auf jedes Element angewendet, um eine neue Liste zu erstellen.
Das Format einer List Comprehension kann als for
-Schleife verstanden werden. Die Syntax einer List Comprehension lautet:
new_list = [expression for item in old_list]
new_list = [expression for item in old_list if condition]
new_list
: Die resultierende Liste, die aus der Expression für jedes Element der alten Liste generiert wird.expression
: Die Operation oder Transformation, die auf jedes Element der alten Liste angewendet wird, um die neue Liste zu generieren.item
: Die Variable, die jedes Element der alten Liste repräsentiert.old_list
: Die bestehende Liste, die zur Generierung der neuen Liste verwendet wird.condition
(optional): Eine Filterbedingung, die angewendet werden kann, um nur bestimmte Elemente aus der alten Liste basierend auf einem bestimmten Kriterium einzuschließen.Üben wir List Comprehensions in der Python-Shell:
>>> ls = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> even_list = [item for item in ls if item % 2 == 0]
>>> even_list
[2, 4, 6, 8, 10]
In diesem Beispiel enthält die Liste even_list
nur die geraden Zahlen aus der Liste ls
.
List Comprehensions bieten eine kompakte und lesbare Möglichkeit, Listen zu manipulieren, wodurch Python-Code ausdrucksstärker und effizienter wird.
Tupel in Python ähneln Listen, mit dem Unterschied, dass die Elemente eines Tupels unveränderlich (immutable) sind, d. h., sie können nach der Erstellung nicht geändert werden. Die Elemente von Tupeln werden in ()
eingeschlossen und durch ,
getrennt.
Erstellen Sie ein Tupel mit den folgenden Elementen:
>>> tup1 = ('Google', 'Run', 'Python')
>>> tup2 = (1, 2, 3, 4, 5)
>>> empty_tup = ()
>>> tup1
('Google', 'Run', 'Python')
>>> tup2
(1, 2, 3, 4, 5)
>>> empty_tup
()
Greifen Sie auf die Elemente von Tupeln über Indizierung zu:
>>> print(tup1[0])
Google
>>> print(tup2[1:3])
(2, 3)
>>> print(empty_tup[0])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range ## Fehler aufgetreten, da das Tupel leer ist.
Während Tupel nicht modifiziert werden können, können sie zusammengeführt werden:
>>> tup3 = tup1 + tup2
>>> print(tup3)
('Google', 'Run', 'Python', 1, 2, 3, 4, 5)
Tupel bieten eine zuverlässige Möglichkeit, Daten zu speichern, die nicht verändert werden sollen, und sorgen so für Stabilität und Integrität in Ihren Python-Programmen.
Wörterbücher (Dictionaries) in Python sind vielseitige und veränderliche (mutable) Datenstrukturen, die Schlüssel-Wert-Paare speichern.
Jedes Schlüssel-Wert-Paar wird durch einen Doppelpunkt getrennt, und jedes Paar wird durch ein Komma getrennt. Das gesamte Wörterbuch wird in geschweifte Klammern {}
eingeschlossen.
d = {key1 : value1, key2 : value2, key3 : value3 }
Schlüssel in einem Wörterbuch müssen eindeutig sein, Werte können jedoch doppelt vorkommen.
Erstellen Sie Wörterbücher mit Schlüssel-Wert-Paaren:
>>> dict1 = {'name': 'James', "age": 23, "phone": "12345"}
>>> dict2 = {}
>>> dict1
{'name': 'James', 'age': 23, 'phone': '12345'}
>>> dict2
{}
Greifen Sie auf Schlüssel-Wert-Paare zu, indem Sie den Schlüssel in eckigen Klammern []
verwenden oder die get()
-Funktion:
>>> print(dict1["name"])
James
>>> print(dict2["name"])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'name'
>>> print(dict2.get("name"))
None
Das Verwenden von dict[key]
, um auf einen Schlüssel zuzugreifen, der nicht im Wörterbuch existiert, löst eine KeyError
-Ausnahme aus. dict.get(key)
gibt jedoch None
zurück, wenn der Schlüssel im Wörterbuch nicht gefunden wird.
Fügen Sie Einträge in ein Wörterbuch hinzu oder ändern Sie bestehende Einträge, indem Sie Werten Schlüssel zuweisen:
>>> dict2["name"] = "Lily"
>>> dict1["name"] = "Bob"
>>> dict2["name"]
'Lily'
>>> dict1["name"]
'Bob'
Löschen Sie Schlüssel-Wert-Paare mit del dict[key]
oder löschen Sie das gesamte Wörterbuch mit dict.clear()
:
>>> del dict1["name"]
>>> print(dict1)
{'age': 23, 'phone': '12345'}
>>> dict2.clear()
>>> print(dict2)
{}
Wörterbücher bieten eine flexible Möglichkeit, Daten zu speichern und zu manipulieren, was sie für verschiedene Aufgaben in der Python-Programmierung unerlässlich macht.
Mengen (Sets) in Python sind ungeordnete Sammlungen eindeutiger Elemente. Sie können mit geschweiften Klammern {}
oder der set()
-Funktion erstellt werden.
Um eine leere Menge zu erstellen, müssen Sie set()
anstelle von {}
verwenden, da {}
zur Erstellung eines leeren Wörterbuchs verwendet wird. Erstellen Sie Mengen mit verschiedenen Methoden:
>>> set1 = set()
>>> print(set1)
set()
>>> set2 = {'apple', 'orange', 'banana'}
>>> print(set2)
{'banana', 'apple', 'orange'}
>>> set3 = set("Hello World!")
>>> print(set3)
{'o', 'H', 'W', ' ', 'd', 'r', '!', 'e', 'l'}
Fügen Sie Elemente zu einer Menge mit den Methoden add()
oder update()
hinzu:
>>> set1.add('apple')
>>> print(set1)
{'apple'}
>>> set2.update({'orange', 'pear'})
>>> print(set2)
{'apple', 'orange', 'banana', 'pear'}
Entfernen Sie Elemente aus einer Menge mit den Methoden discard()
oder remove()
.
Die Methode discard()
löst keinen Fehler aus, wenn das Element nicht in der Menge vorhanden ist, während die Methode remove()
dies tut.
>>> set1.remove('apple')
>>> print(set1)
set()
>>> set1.discard('banana')
>>> print(set1)
set()
Mengen bieten eine bequeme Möglichkeit, mit Sammlungen eindeutiger Elemente in Python zu arbeiten, was sie für verschiedene Aufgaben wie das Entfernen von Duplikaten oder das Testen auf Mitgliedschaft nützlich macht.
Herzlichen Glückwunsch! Sie haben das Labor (Lab) zu Datenstrukturen abgeschlossen.
In diesem Labor haben Sie die grundlegenden Datenstrukturen von Python gelernt sowie, wann und wie Sie diese Datenstrukturen bei der Problemlösung einsetzen können.