Arten von Datenstrukturen in Python: Liste, Tupel, Sätze und Wörterbuch

Veröffentlicht: 2020-12-30

Python ist eine allzeit beliebte Sprache für alle Data-Science-Enthusiasten. Die Vielseitigkeit und der leicht verständliche Ansatz helfen Entwicklern, sich mehr darauf zu konzentrieren, die Trends in den Daten zu verstehen und aussagekräftige Erkenntnisse abzuleiten, anstatt Zeit damit zu verbringen, einen kleinen Semikolon-Fehler zu beheben oder die obere Klammer zu schließen. Da Python die beliebteste Sprache unter Anfängern ist, wird es schnell angepasst, daher ist es wichtig, diese Sprache gut zu verstehen.

Datenstrukturen sind ein wesentliches Konzept in jeder Programmiersprache. Sie definiert, wie die Variablen und Daten je nach Datentyp optimal abgelegt und aus dem Speicher abgerufen werden können. Es definiert auch die Beziehung zwischen Variablen, was bei der Entscheidung hilft, welche Operationen und Funktionen über sie ausgeführt werden sollen. Lassen Sie uns verstehen, wie Python Daten verwaltet.

Inhaltsverzeichnis

Arten von Datenstrukturen in Python

1. Liste

Dies ist die einfachste und am häufigsten verwendete Datenstruktur in der Python-Programmierung. Wie der Name schon sagt, handelt es sich um eine Sammlung von Gegenständen, die aufbewahrt werden sollen. Die gespeicherten Elemente können von jedem Typ sein, numerisch, Zeichenfolge, boolesch, Objekte usw., was sie heterogen macht. Das bedeutet, dass eine Liste jede Art von Daten enthalten kann und wir diese Liste mit jeder Art von Schleife durchlaufen können.

Die gespeicherten Elemente sind üblicherweise einem Index zugeordnet, der die Position in der Liste definiert. Die Indexnummerierung beginnt bei Null. Die Liste ist änderbar, was bedeutet, dass Elemente in der Liste hinzugefügt, entfernt oder geändert werden können, selbst nachdem sie definiert wurden. Diese Datenstruktur ist wie Arrays in anderen Sprachen, die normalerweise homogen ist, was bedeutet, dass nur ein Datentyp in Arrays gespeichert werden kann. Einige grundlegende Operationen auf Listen sind wie folgt:

  • Um eine Liste in Python zu deklarieren, setzen Sie sie in die eckigen Klammern:

sample_list = ['upGrad', '1', 2]

  • So initialisieren Sie eine leere Liste:

Beispielliste = Liste()

  • Elemente zur Liste hinzufügen:

sample_list.append('neues_element')

  • Elemente aus der Liste entfernen:

sample_list.remove(<Elementname>) entfernt das spezifische Element

del sample_list[<element index num>] entfernt das Element an diesem Index

sample_list.pop(<element index num>) entfernt das Element dieses Index und gibt dieses entfernte Element zurück

  • So ändern Sie das Element an einem beliebigen Index:

sample_list[<beliebiger Index>] = neues Element

  • Slicing : Dies ist eine wichtige Funktion, die in bestimmten Fällen Elemente in der Liste herausfiltern kann. Bedenken Sie, dass Sie nur einen bestimmten Wertebereich aus der Liste benötigen, dann können Sie dies einfach tun, indem Sie:

sample_list[start: stop: step] wobei step den Abstand zwischen den Elementen definiert und standardmäßig 1 ist.

Erfahren Sie mehr über: So erstellen Sie einen perfekten Entscheidungsbaum

2. Tupel

Dies ist eine weitere Datenstruktur, die Daten sequentiell speichert, was bedeutet, dass die hinzugefügten Daten wie die Listen geordnet bleiben. Nach den gleichen Richtlinien kann Tuple auch heterogene Daten speichern, und die Indizierung bleibt gleich.

Der Hauptunterschied zwischen den beiden besteht darin, dass die im Tupel gespeicherten Elemente unveränderlich sind und nach der Definition nicht geändert werden können. Das bedeutet, dass Sie keine neuen Elemente hinzufügen, vorhandene Elemente ändern oder Elemente aus dem Tupel löschen können. Elemente können daraus nur per Indizierung oder Entpacken ersatzlos ausgelesen werden.

Dies macht Tupel im Vergleich zur Liste in Bezug auf die Erstellung schnell. Das Tupel wird in einem einzelnen Speicherblock gespeichert, aber eine Liste erfordert zwei Blöcke, einen mit fester Größe und einen mit variabler Größe zum Speichern von Daten. Man sollte ein Tupel einer Liste vorziehen, wenn der Benutzer sicher ist, dass die zu speichernden Elemente keiner weiteren Änderung bedürfen. Einige Dinge, die bei der Verwendung eines Tupels zu beachten sind:

  • So initialisieren Sie ein leeres Tupel:

sample_tuple = Tupel()

  • Um ein Tupel zu deklarieren, schließen Sie die Elemente in runde Klammern ein:

sample_tuple = ('upGrad', 'Python', 'ML', 23432)

  • So greifen Sie auf die Elemente des Tupels zu:

sample_tuple[<index_num>]

3. Sätze

In der Mathematik ist eine Menge eine wohldefinierte Sammlung einzigartiger Elemente, die miteinander in Beziehung stehen können oder nicht. In Tupel und Liste kann man viele doppelte Elemente ohne Fehler speichern, aber die Satzdatenstruktur nimmt nur eindeutige Elemente auf.

Die Elemente eines Satzes werden auf ungeordnete Weise gespeichert, was bedeutet, dass die Elemente zufällig in dem Satz gespeichert werden und keine bestimmte Position oder Index unterstützt wird, und in einem Satz auch kein Slicing zulässig ist. Die Menge selbst ist änderbar, aber die Elemente müssen unveränderlich sein, da die Funktionsweise von Mengen diese Elemente hasht und in diesem Prozess nur unveränderliche Elemente gehasht werden können.

Elemente können dem Satz hinzugefügt oder daraus entfernt werden, aber nicht geändert werden, da es kein Indizierungskonzept gibt und Elemente daher geändert werden können. Wie in der Mathematik können auch hier alle Mengenoperationen wie Vereinigung, Durchschnitt, Differenz, Disjunkt durchgeführt werden. Schauen wir uns an, wie man es implementiert:

  • So initialisieren Sie einen leeren Satz:

sample_set = set()

  • Elemente zum Set hinzufügen:

sample_set.add(item) Dies fügt dem Set ein einzelnes Element hinzu

sample_set.update(items) Dies kann mehrere Elemente über eine Liste, ein Tupel oder ein anderes Set hinzufügen

  • Elemente aus dem Set entfernen:

sample_set.discard(item) Entfernt Element ohne Warnung, wenn Element nicht vorhanden ist

sample_set.remove(item) Löst einen Fehler aus, wenn das zu entfernende Element nicht vorhanden ist.

  • Mengenoperationen (Angenommen, zwei Mengen sind initialisiert: A und B):

Ein | B oder A.union(B): Union-Operation

A & B oder A.intersection(B): Kreuzungsbetrieb

A – B oder A.difference(B): Differenz zweier Sätze

A ^ B oder A.symmetric_difference(B) : Symmetrische Differenz von Mengen

Schauen Sie sich an: Datenrahmen in Python

4. Wörterbuch

Dies ist die nützlichste Datenstruktur in Python, die es ermöglicht, die Datenelemente in Form von Schlüssel-Wert-Paaren zu speichern. Der Schlüssel muss ein unveränderlicher Wert sein, und der Wert kann ein veränderliches Element sein. Dieses Konzept ähnelt dem, wie ein echtes Wörterbuch aussieht, in dem wir die Wörter als Schlüssel und ihre Bedeutung als Werte haben. Ein Wörterbuch speichert diese Paare in ungeordneter Weise, und daher gibt es in dieser Datenstruktur kein Indexkonzept. Einige wichtige Dinge in diesem Zusammenhang:

  • So initialisieren Sie ein leeres Wörterbuch:

sample_dict = dict()

  • So fügen Sie Elemente zum Wörterbuch hinzu:

sample_dict[Schlüssel] = Wert

Eine andere Möglichkeit, dies zu tun, ist sample_dict = {key: value}

Wenn Sie dieses Wörterbuch drucken, lautet die Ausgabe: {'key1': value, 'key2': value … }

  • So erhalten Sie die Schlüssel und Werte des Wörterbuchs:

sample_dict.keys(): gibt Schlüsselliste zurück

sample_dict.values(): gibt Werteliste zurück

sample_dict.items(): gibt das Ansichtsobjekt von Schlüssel-Wert-Paaren als Tupel in der Liste zurück

Lernen Sie Datenwissenschaftskurse von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Fazit

Es ist wichtig, sich das Grundwissen über Datenstrukturen in Python anzueignen. In der Datenbranche können verschiedene Datenstrukturen helfen, die zugrunde liegenden Algorithmen besser zu umgehen. Es sensibilisiert den Entwickler für die besten Codierungspraktiken, um die Ergebnisse effizient zu erhalten. Die Verwendung jeder Datenstruktur ist stark situationsabhängig und erfordert strenge Übung.

Welche Bedeutung haben Datenstrukturen?

Datenstrukturen sind eine der Grundsäulen jeder Programmiersprache. Sie definieren, wie die Daten im Speicher gespeichert und verarbeitet werden. Die Konzepte von Datenstrukturen bleiben gleich, egal von welcher Programmiersprache wir sprechen.

Zu den gängigsten Datenstrukturen gehören Arrays, Listen, Stacks, Queues, Trees, Hashmaps und Graphen. Einige von ihnen sind eingebaut, während andere vom Benutzer mit Hilfe der vordefinierten Datenstrukturen implementiert werden müssen.

Wie kann ich ein starkes Verständnis von Datenstrukturen entwickeln?

Die grundlegenden Konzepte der Implementierungen und der Funktionsweise jeder Datenstruktur sollten der erste Schritt sein, den Sie unternehmen sollten. Nachdem Sie sich mit den theoretischen Konzepten und der Arbeit vertraut gemacht haben, können Sie mit dem Codierungsteil beginnen.

Sie sollten immer die zeitlichen und räumlichen Komplexitäten aller Algorithmen oder Datenstrukturen untersuchen, an denen Sie arbeiten. Dadurch erhalten Sie einen guten Einblick in das Konzept und können jede Frage lösen, die diese bestimmte Datenstruktur erfordert.

Wann wird eine Python-Liste zum Speichern von Daten bevorzugt?

Eine Liste kann verwendet werden, um verschiedene Werte mit unterschiedlichen Datentypen zu speichern und auf die nur über ihre jeweiligen Indizes zugegriffen werden kann. Wenn Sie mathematische Operationen mit den Elementen durchführen müssen, kann eine Liste verwendet werden, da Sie die Elemente direkt mathematisch bearbeiten können.

Da eine Liste in der Größe verändert werden kann, kann sie zum Speichern der Daten verwendet werden, wenn Sie sich über die Anzahl der zu speichernden Elemente nicht sicher sind.