Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Python Tupel meistern: Definition, Nutzung & Unterschiede zu Listen

Was sind Tupel in Python?

Ein Tupel ist eine Sammlung von Objekten, die geordnet und unveränderlich (immutable) ist. Tupel sind Sequenzen, genau wie Listen. Die Unterschiede zwischen Tupeln und Listen sind: Tupel können nicht geändert werden, im Gegensatz zu Listen, und Tupel verwenden Klammern, während Listen eckige Klammern verwenden.

Ein Tupel zu erstellen ist so einfach wie das Einfügen verschiedener kommagetrennter Werte. Optional können Sie diese Werte auch zwischen 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 ohne Inhalt geschrieben:

tup1 = ();

Um ein Tupel mit einem einzelnen Wert zu schreiben, müssen Sie ein Komma einschließen, obwohl es nur einen Wert gibt:

tup1 = (50,);

Wie bei String-Indizes beginnen Tupel-Indizes bei 0, und sie können gesliced, konkateniert usw. werden.

Zugriff auf Werte in Tupeln

Für den Zugriff auf Werte in Tupeln verwenden Sie eckige Klammern für Slicing zusammen mit dem Index oder den Indizes, um den an diesem Index verfügbaren Wert zu erhalten. Zum Beispiel:

#!/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 folgendes Ergebnis:

tup1[0]: physics
tup2[1:5]: [2, 3, 4, 5]

Tupel aktualisieren

Tupel sind unveränderlich (immutable), was bedeutet, dass Sie die Werte von Tupel-Elementen nicht aktualisieren oder ändern können. Sie können jedoch Teile bestehender Tupel nehmen, um neue Tupel zu erstellen, wie das folgende Beispiel zeigt:

#!/usr/bin/python
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');
# Folgende Aktion ist für Tupel nicht gültig
# tup1[0] = 100;
# Also erstellen wir ein neues Tupel wie folgt:
tup3 = tup1 + tup2;
print tup3;

Wenn der obige Code ausgeführt wird, erzeugt er folgendes Ergebnis:

(12, 34.56, 'abc', 'xyz')

Tupel-Elemente löschen

Das Entfernen einzelner Tupel-Elemente ist nicht möglich. Es ist natürlich nichts falsch daran, ein weiteres Tupel mit den unerwünschten Elementen zu erstellen.

Um ein ganzes Tupel explizit zu entfernen, verwenden Sie einfach die del-Anweisung. Zum Beispiel:

#!/usr/bin/python
tup = ('physics', 'chemistry', 1997, 2000);
print tup;
del tup;
print "After deleting tup : ";
print tup;

Dies erzeugt folgendes Ergebnis. Beachten Sie die Exception, da nach del tup das Tupel nicht mehr existiert:

('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
  File "test.py", line 9, in 
    print tup;
NameError: name 'tup' is not defined

Grundlegende Tupel-Operationen

Tupel reagieren auf die Operatoren + und * ähnlich wie Strings; sie bedeuten Konkatenation 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 bei Strings verwendet haben:

Python-AusdruckErgebnisBeschreibung
len((1, 2, 3))3Länge
(1, 2, 3) + (4, 5, 6)(1, 2, 3, 4, 5, 6)Konkatenation
('Hi!',) * 4('Hi!', 'Hi!', 'Hi!', 'Hi!')Wiederholung
3 in (1, 2, 3)TrueMitgliedschaft
for x in (1, 2, 3): print x,1 2 3Iteration

Indizierung, Slicing und Matrizen

Da Tupel Sequenzen sind, funktionieren Indizierung und Slicing genauso wie bei Strings. Angenommene Eingabe:

L = ('spam', 'Spam', 'SPAM!')
Python-AusdruckErgebnisBeschreibung
L[2]'SPAM!'Offsets beginnen bei null
L[-2]'Spam'Negativ: Zählen von rechts
L[1:]['Spam', 'SPAM!']Slicing holt Abschnitte

Keine umgebenden Delimiter

Jede Menge mehrerer Objekte, kommagetrennt, ohne identifizierende Symbole (Klammern für Listen, Klammern für Tupel etc.), werden standardmäßig zu Tupeln, wie diese kurzen Beispiele zeigen:

#!/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 folgendes Ergebnis:

abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2

Eingebaute Tupel-Funktionen

Python enthält folgende Tupel-Funktionen:

Nr.Funktion & Beschreibung
1cmp(tuple1, tuple2) – Vergleicht Elemente beider Tupel.
2len(tuple) – Gibt die Gesamtlänge des Tupels.
3max(tuple) – Gibt Element mit maximalem Wert zurück.
4min(tuple) – Gibt Element mit minimalem Wert zurück.
5tuple(seq) – Konvertiert eine Liste in ein Tupel.

Python

  1. Python-Datentypen meistern: Praxisleitfaden
  2. Python-Operatoren meistern: Umfassender Leitfaden
  3. Python pass-Statement meistern: Praxisleitfaden
  4. Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
  5. Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
  6. Python Iteratoren meistern: Funktionsweise und Erstellung eigener Iteratoren
  7. Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
  8. Python datetime meistern: Praktischer Leitfaden zu Datumsangaben, Zeiten und Zeitzonen
  9. Pythons time.sleep() meistern: Best Practices, Multithreading und Praxisbeispiele
  10. Python Tupels meistern: Packing, Unpacking, Vergleich, Slicing und Dictionary-Keys