Sequenz
Eine Sequenz ist eine Kombination von Elementen gleichen Typs, die über rechteckige Klammern ausgelesen werden können. Eine Sequenz ist immutable, als unveränderlich. Es können also nach der Erzeugung keine einzelnen Elemente mehr geändert werden.
- Mit der Zeichenkette - auch String genannt - kennen wir bereits die wichtigste Sequenz.
- Auch die Listen gehören zu den Sequenzen.
- Tupel haben zwar keine rechteckigen Klammern, sind aber doch Sequenzen.
- Es bleiben noch Bytes und Bytearrays, die auch dazu gehören.
Sequenzoperationen
Neben der Unveränderlichkeit haben die Sequenztypen auch einige Operationen gemein.Die Erläuterungen für den Umgang mit den rechteckigen Klammern finden Sie bei den Zeichenketten.
- teil in gesamt: Ermittelt, ob teil in der Sequenz gesamt enthalten ist.
- anfang + ende: Hängt anfang und ende aneinander.
- anfang += ende: Hängt ende an anfang an.
Tupel
AusgelagertListe
AusgelagertDictionaries
Ein Dictionary ermöglicht es, über einen Schlüsselbegriff nach Elementen zu suchen. Ein Dictionary wird mit geschweiften Klammern umgeben. Darin befindet sich eine durch Kommata getrennte Folge von Schlüsseln und Werten, die selbst wiederum durch einen Doppelpunkt getrennt sind. Ein naheliegendes Beispiel ist die Suche eines Kreises anhand des Autokennzeichens. Ein solches Nachschlagewerk würde folgendermaßen in Python realisiert:kreis = {"SL":"Schleswig", "FL":"Flensburg","HG":"Bad Homburg"} print(kreis["FL"])Der Aufruf von print() würde in diesem Beispiel Flensburg liefern. Um ein Dictionary komplett auszulesen, kann wieder der Befehl for verwendet werden.
for i in kreis: print(i, kreis[i])Wie man sieht, erhält die Laufvariable von for dabei den Schlüsselwert, über den dann aber leicht das Element zugegriffen werden kann.
Operationen auf dem Dictionary
- Einfügen:
Ein neues Element wird eingefügt, wenn über einen bisher nicht existenten
Schlüssel ein Element zugewiesen wird.
kreis["HH"] = "Hamburg"
- Änderung:
Wird die gleiche Anweisung auf einen existenten Schlüssel gemacht, wird
das bisherige Element durch das neue Element ersetzt. Statt ''Bad Homburg''
enthält das Element nun ''Hochtaunuskreis''.
kreis["HG"] = "Hochtaunuskreis"
- Löschen: Um ein Element mit Schlüssel zu entfernen, wird die Funktion
del verwendet. Dabei erhält sie als Argument den Dictionary-Eintrag
des zu entfernenden Elements.
del kreis["FL"]
Ist das Element allerdings nicht vorhanden, führt der Löschversuch zu einer Exception. - Komplett löschen: Mit der Funktion clear() werden alle
Elemente aus dem Dictionary gelöscht.
kreis.clear()
- Prüfen:
Mit dem in, das bereits vom for bekannt ist, kann getestet werden,
ob ein Schlüssel im Dictionary existiert.
if ("HG" in kreis): print("ja")
kreis = {"SL":"Schleswig", "FL":"Flensburg","HG":"Bad Homburg"} liste = kreis.items() print(liste)Die Ausgabe ergibt folgendes:
[('FL', 'Flensburg'), ('HG', 'Bad Homburg'), ('SL', 'Schleswig')]Die Funktion keys() liefert eine Liste aller Schlüssel eines Dictionarys.
kreis = {"SL":"Schleswig", "FL":"Flensburg","HG":"Bad Homburg"} liste = kreis.keys() print(liste)Die Ausgabe ergibt folgendes:
['FL', 'HG', 'SL']Analog liefert die Funktion values() eine Liste der Werte.
Mengen: set und frozenset
Mit set und frozenset bildet Python eine Menge nach. Eine Menge ist unsortiert. Jedes Element darf nur einmal enthalten sein. Während set veränderlich ist, ist frozenset, wie der Name schon vermuten lässt, unveränderbar. Eine leere Menge wird durch Initialisierung mit der Funktion set() erzeugt.meineMenge = set()Ein Set kann durch eine Liste initialisiert werden. Das gleiche gilt für frozenset. Die Liste wird als Parameter übergeben.
meineMenge = set([1,12,34,38,39,40]) meineFesteMenge = frozenset([1,12,34,38,39,40])Wird statt einer Liste eine Zeichenkette für die Initialisierung verwendet, enthält der Set die einzelnen Buchstaben der Zeichenkette. Dubletten werden dabei aussortiert, da eine Menge ja keine doppelten Elemente erlaubt.
>>> set("Hallihallo") set(['a', 'i', 'H', 'l', 'o', 'h'])Wenn Sie ein Dictionary für die Initialsierung einer Menge verwenden, enthält diese anschließend die Schlüssel.
>>> kreis = {"SL":"Schleswig", "FL":"Flensburg","HG":"Bad Homburg"} >>> print(set(kreis)) set(['FL', 'HG', 'SL']) >>>
Elemente und Mengen
Nach der Initialisierung kann einem set noch Elemente hinzugefügt oder entfernt werden. Die folgenden Funktionen stehen zur Verfügung:- len(menge)
Die Funktion len() liefert die Anzahl der Elemente. - element in menge
Diese Bedingung ist wahr (True), wenn das Element element in der Menge menge enthalten ist. - element not in menge
Diese Bedingung ist wahr, wenn das Element nicht in der Menge enthalten ist. - menge.add(element)
Das Element element wird in die Menge menge eingefügt. - menge.remove(element)
Das Element element wird aus der Menge menge entfernt. Existiert element nicht, führt dies zu einer Exception. - menge.discard(element)
Das Element element wird aus der Menge menge entfernt. Existiert element nicht, hat das keine Konsequenzen. - menge.clear()
Alle Elemente der Menge menge werden gelöscht.
Verknüpfung von Mengen
Die bekannten Operationen aus der Mengenleere lassen sich auch mit Python-Mengen ausführen.Zwei Mengen können durch das Kleiner- und Größerzeichen verglichen werden. Dabei prüft der Ausdruck m1<m2, ob m1 eine echte Teilmenge von m2 ist. Der Gleichheitsoperator prüft, ob die Mengen die gleichen Elemente haben. Daraus ergibt sich dann logisch die Funktion der anderen Vergleichsoperatoren.
Der senkrechte Strich bewirkt das Erzeugen einer Vereinigungsmenge zweier Mengen. Die Ergebnismenge enthält also alle Elemente, die in mindestens einer der beiden Mengen enthalten sind.
vereinigung = menge | nochnemengeMit dem kaufmännischen Und, auch Ampersand genannt, erzeugen Sie die Schnittmenge zweier Mengen. Die Ergebnismenge enthält also alle nur Elemente, die in beiden Mengen enthalten sind.
schnitt = menge & nochnemengeDas Minuszeichen erzeugt eine Differenzmenge aus zwei Mengen. Die erzeugte Menge enthält alle Elemente der ersten Menge, außer denen, die auch in der zweiten Menge enthalten sind.
diff = menge - nochnemengeMit dem Dachoperator wird die symetrische Differenz der Mengen erzeugt. Sie enthält nur die Elemente, die in genau einer der beiden Mengen vorhanden ist, also nicht in beiden.
symdiff = menge ^ nochnemenge
Operator | Funktion |
---|---|
menge = erst <= zweit | menge = erst.issubset(zweit) |
menge = erst >= zweit | menge = erst.issuperset(zweit) |
menge = erst | zweit | menge = erst.union(zweit) |
menge = erst & zweit | menge = erst.intersection(zweit) |
menge = erst - zweit | menge = erst.difference(zweit) |
menge = erst ^ zweit | menge = erst.symmetric_difference(zweit) |
menge |= andere | menge.update(andere) |
menge &= andere | menge.intersection_update(andere) |
menge -= andere | menge.difference_update(andere) |
menge ^= andere | menge.symmetric_difference_update(andere) |
Wie bei allen Containern führt eine Zuweisung dazu, dass eine Referenz entsteht. Wird eine Kopie benötigt, wird die Memberfunktion copy() aufgerufen.