Grundlagen der Python-Datenstrukturen

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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

Listen

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.

Liste erstellen

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']

Zugriff auf Werte

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']

Wert aktualisieren

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']

Wert anhängen

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']

Wert löschen

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']

Andere Listenfunktionen

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 Comprehensions

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.

Übung mit List Comprehensions

Ü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

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.

Tupel erstellen

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
()

Zugriff auf Tupel-Elemente

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.

Tupel zusammenführen

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

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.

Wörterbuch erstellen

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
{}

Zugriff auf Wörterbuchelemente

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.

Wörterbuch ändern

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'

Wörterbuchelemente löschen

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

Mengen (Sets) in Python sind ungeordnete Sammlungen eindeutiger Elemente. Sie können mit geschweiften Klammern {} oder der set()-Funktion erstellt werden.

Menge erstellen

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'}

Element hinzufügen

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'}

Element entfernen

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.

Zusammenfassung

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.