Python - Tupel
Vorherige SeiteNächste Seite
Ein Tupel ist eine Sammlung von Objekten, die geordnet und unveränderlich sind. Tupel sind Sequenzen, genau wie Listen. Der Unterschied zwischen Tupeln und Listen besteht darin, dass die Tupel im Gegensatz zu Listen nicht geändert werden können und Tupel Klammern verwenden, während Listen eckige Klammern verwenden.
Das Erstellen eines Tupels ist so einfach wie das Setzen verschiedener kommagetrennter Werte. Optional können Sie diese kommaseparierten Werte auch in Klammern setzen. Zum Beispiel −
tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, 3, 4, 5 ); tup3 = "a", "b", "c", "d";
Das leere Tupel wird als zwei Klammern geschrieben, die nichts enthalten −
tup1 = ();
Um ein Tupel zu schreiben, das einen einzelnen Wert enthält, müssen Sie ein Komma einfügen, obwohl es nur einen Wert gibt −
tup1 = (50,);
Wie String-Indizes beginnen Tupel-Indizes bei 0 und können zerlegt, verkettet usw. werden.
Auf Werte in Tupeln zugreifen
Um auf Werte im Tupel zuzugreifen, verwenden Sie die eckigen Klammern zum Aufteilen zusammen mit dem Index oder den Indizes, um den an diesem Index verfügbaren Wert zu erhalten. Zum Beispiel −
Live-Demo#!/usr/bin/python tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, 3, 4, 5, 6, 7 ); print "tup1[0]: ", tup1[0]; print "tup2[1:5]: ", tup2[1:5];
Wenn der obige Code ausgeführt wird, erzeugt er das folgende Ergebnis −
tup1[0]: physics tup2[1:5]: [2, 3, 4, 5]
Tupel aktualisieren
Tupel sind unveränderlich, was bedeutet, dass Sie die Werte von Tupelelementen nicht aktualisieren oder ändern können. Sie können Teile bestehender Tupel verwenden, um neue Tupel zu erstellen, wie das folgende Beispiel demonstriert −
Live-Demo#!/usr/bin/python tup1 = (12, 34.56); tup2 = ('abc', 'xyz'); # Following action is not valid for tuples # tup1[0] = 100; # So let's create a new tuple as follows tup3 = tup1 + tup2; print tup3;
Wenn der obige Code ausgeführt wird, erzeugt er das folgende Ergebnis −
(12, 34.56, 'abc', 'xyz')
Tupelelemente löschen
Das Entfernen einzelner Tupelelemente ist nicht möglich. Es spricht natürlich nichts dagegen, ein weiteres Tupel zusammenzustellen, bei dem die unerwünschten Elemente verworfen werden.
Um ein ganzes Tupel explizit zu entfernen, verwenden Sie einfach das del Aussage. Zum Beispiel −
Live-Demo#!/usr/bin/python tup = ('physics', 'chemistry', 1997, 2000); print tup; del tup; print "After deleting tup : "; print tup;
Dies ergibt das folgende Ergebnis. Beachten Sie, dass eine Ausnahme ausgelöst wurde, dies liegt daran, dass nach del tup Tupel existiert nicht mehr −
('physics', 'chemistry', 1997, 2000) After deleting tup : Traceback (most recent call last): File "test.py", line 9, in <module> print tup; NameError: name 'tup' is not defined
Grundlegende Tupeloperationen
Tupel reagieren auf die Operatoren + und * ähnlich wie Strings; sie bedeuten auch hier Verkettung und Wiederholung, außer dass das Ergebnis ein neues Tupel ist, kein String.
Tatsächlich reagieren Tupel auf alle allgemeinen Sequenzoperationen, die wir im vorigen Kapitel auf Strings angewendet haben −
Python-Ausdruck | Ergebnisse | Beschreibung |
---|---|---|
len((1, 2, 3)) | 3 | Länge |
(1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | Verkettung |
('Hallo!',) * 4 | ('Hallo!', 'Hallo!', 'Hallo!', 'Hallo!') | Wiederholung |
3 Zoll (1, 2, 3) | Richtig | Mitgliedschaft |
für x in (1, 2, 3):gib x aus, | 1 2 3 | Wiederholung |
Indizierung, Slicing und Matrizen
Da Tupel Sequenzen sind, funktionieren Indexierung und Slicing für Tupel genauso wie für Strings. Angenommen folgende Eingabe −
L = ('spam', 'Spam', 'SPAM!')
Python-Ausdruck | Ergebnisse | Beschreibung |
---|---|---|
L[2] | 'SPAM!' | Offsets beginnen bei Null |
L[-2] | 'Spam' | Negativ:von rechts zählen |
L[1:] | ['Spam', 'SPAM!'] | Slicing ruft Abschnitte ab |
Keine einschließenden Trennzeichen
Jeder Satz von mehreren Objekten, durch Komma getrennt, geschrieben ohne identifizierende Symbole, d. h. Klammern für Listen, Klammern für Tupel usw., werden standardmäßig zu Tupeln, wie in diesen kurzen Beispielen angegeben −
Live-Demo#!/usr/bin/python print 'abc', -4.24e93, 18+6.6j, 'xyz'; x, y = 1, 2; print "Value of x , y : ", x,y;
Wenn der obige Code ausgeführt wird, erzeugt er das folgende Ergebnis −
abc -4.24e+93 (18+6.6j) xyz Value of x , y : 1 2
Eingebaute Tupelfunktionen
Python enthält die folgenden Tupelfunktionen −
Sr.Nr. | Funktion mit Beschreibung |
---|---|
1 | cmp(Tupel1, Tupel2) Vergleicht Elemente beider Tupel. |
2 | len(Tupel) Gibt die Gesamtlänge des Tupels an. |
3 | max(Tupel) Gibt das Element aus dem Tupel mit dem maximalen Wert zurück. |
4 | min(Tupel) Gibt das Element aus dem Tupel mit dem Mindestwert zurück. |
5 | tuple(seq) Konvertiert eine Liste in ein Tupel. |
Python