Grundlegendes zu Tupeln in Python 3

Einführung

Eintuple in Python sieht folgendermaßen aus:

coral = ('blue coral', 'staghorn coral', 'pillar coral', 'elkhorn coral')

Ein Tupel ist eine Datenstruktur, die eine unveränderbare oder unveränderbare geordnete Folge von Elementen ist. Da Tupel unveränderlich sind, können ihre Werte nicht geändert werden.

Tupel werden zum Gruppieren von Daten verwendet. Jedes Element oder jeder Wert in einem Tupel wird als Element bezeichnet.

Tupel haben Werte zwischen Klammern(), die durch Kommas, getrennt sind. Leere Tupel werden alscoral = () angezeigt, Tupel mit nur einem Wert müssen jedoch ein Komma wie incoral = ('blue coral',) verwenden.

Wenn wirprint()das obige Tupel sind, erhalten wir die folgende Ausgabe, wobei das Tupel immer noch in Klammern steht:

print(coral)
Output('blue coral', 'staghorn coral', 'pillar coral', 'elkhorn coral')

Wenn Sie an Python-Tupel und andere Datenstrukturen denken, die Arten von Sammlungen sind, ist es hilfreich, alle verschiedenen Sammlungen zu berücksichtigen, die Sie auf Ihrem Computer haben: Ihre Auswahl an Dateien, Ihre Wiedergabelisten für Musiktitel, Ihre Browser-Lesezeichen, Ihre E-Mails, die Sammlung von Videos Sie können auf einen Streaming-Dienst und mehr zugreifen.

Tupel ähnelnlists, ihre Werte können jedoch nicht geändert werden. Wenn Sie Tupel in Ihrem Code verwenden, geben Sie aus diesem Grund an andere Personen weiter, von denen Sie nicht beabsichtigen, dass sie Änderungen an dieser Wertereihenfolge vornehmen. Da sich die Werte nicht ändern, kann Ihr Code außerdem mithilfe von Tupeln in Python optimiert werden, da der Code für Tupel etwas schneller ist als für Listen.

Indizierung von Tuples

Als geordnete Folge von Elementen kann jedes Element in einem Tupel durch Indizierung einzeln aufgerufen werden.

Jedes Element entspricht einer Indexnummer, bei der es sich um einen ganzzahligen Wert handelt, beginnend mit der Indexnummer0.

Für das Tupelcoralieht die Indexaufschlüsselung folgendermaßen aus:

"Blaue Koralle" "Hirschhornkoralle" 'Pfeilerkoralle' 'Elchhornkoralle'

0

1

2

3

Das erste Element, die Zeichenfolge'blue coral', beginnt bei Index0, und die Liste endet bei Index4 mit dem Element'elkhorn coral'.

Da jedes Element in einem Python-Tupel eine entsprechende Indexnummer hat, können wir auf Elemente zugreifen.

Nun können wir ein einzelnes Element des Tupels unter Bezugnahme auf seine Indexnummer aufrufen:

print(coral[2])
Outputpillar coral

Die Indexnummern für dieses Tupel reichen von0 bis3, wie in der obigen Tabelle gezeigt. Um also eines der Elemente einzeln aufzurufen, beziehen wir uns auf die folgenden Indexnummern:

coral[0] = 'blue coral'
coral[1] = 'staghorn coral'
coral[2] = 'pillar coral'
coral[3] = 'elkhorn coral'

Wenn wir das Tupelcoral mit einer Indexnummer aufrufen, die größer als3 ist, liegt es außerhalb des Bereichs, da es nicht gültig ist:

print(coral[22])
OutputIndexError: tuple index out of range

Zusätzlich zu positiven Indexzahlen können wir auch auf Elemente aus dem Tupel mit einer negativen Indexnummer zugreifen, indem wir ab dem Ende des Tupels rückwärts zählen, beginnend bei-1. Dies ist besonders nützlich, wenn wir ein langes Tupel haben und ein Element gegen Ende eines Tupels lokalisieren möchten.

Für dasselbe Tupelcoral sieht die Aufschlüsselung des negativen Index folgendermaßen aus:

'blaue Koralle' "Hirschhornkoralle" 'Pfeilerkoralle' 'Elchhornkoralle'

-4

-3

-2

-1

Wenn wir also den Artikel'blue coral' unter Verwendung seiner negativen Indexnummer ausdrucken möchten, können wir dies folgendermaßen tun:

print(coral[-4])
Outputblue coral

Mit dem Operator+können wir Zeichenfolgenelemente in einem Tupel mit anderen Zeichenfolgen verknüpfen:

print('This reef is made up of ' + coral[1])
OutputThis reef is made up of staghorn coral

Wir konnten das Zeichenfolgenelement bei der Indexnummer0 mit der Zeichenfolge'This reef is made up of ' verketten. Wir können auch den Operator+ fürconcatenate 2 or more tuples together verwenden.

Mit Indexnummern, die Elementen in einem Tupel entsprechen, können wir diskret auf jedes Element eines Tupels zugreifen.

Aufschneiden von Tuples

Wir können die Indizierung verwenden, um einige Elemente aus dem Tupel aufzurufen. Mit Slices können wir mehrere Werte aufrufen, indem wir einen Bereich von Indexnummern erstellen, die durch einen Doppelpunkt[x:y] getrennt sind.

Nehmen wir an, wir möchten nur die mittleren Elemente voncoral drucken. Dazu können wir ein Slice erstellen.

print(coral[1:3])
Output('staghorn coral', 'pillar coral')

Beim Erstellen eines Slice wie in[1:3] beginnt die erste Indexnummer dort, wo das Slice beginnt (einschließlich), und an der zweiten Indexnummer endet das Slice (exklusiv), weshalb in unserem Beispiel über den Elementen unter Position,1 und2 sind die Elemente, die ausgedruckt werden.

Wenn wir eines der Enden der Liste einfügen möchten, können wir eine der Zahlen in der Syntax vontuple[x:y]weglassen. Wenn wir zum Beispiel die ersten 3 Elemente des Tupelscoral drucken möchten - das wären'blue coral','staghorn coral','pillar coral' - können wir dies tun, indem wir Folgendes eingeben:

print(coral[:3])
Output('blue coral', 'staghorn coral', 'pillar coral')

Dies druckte den Anfang des Tupels und stoppte unmittelbar vor dem Index3.

Um alle Elemente am Ende eines Tupels einzuschließen, würden wir die Syntax umkehren:

print(coral[1:])
Output('staghorn coral', 'pillar coral', 'elkhorn coral')

Wir können beim Schneiden von Tupeln auch negative Indexnummern verwenden, genau wie bei positiven Indexnummern:

print(coral[-3:-1])
print(coral[-2:])
Output('staghorn coral', 'pillar coral')
('pillar coral', 'elkhorn coral')

Ein letzter Parameter, den wir beim Schneiden verwenden können, heißtstride. Er gibt an, wie viele Elemente vorwärts bewegt werden sollen, nachdem das erste Element aus dem Tupel abgerufen wurde.

Bisher haben wir den Parameter stride weggelassen, und Python verwendet standardmäßig den Wert 1, damit jedes Element zwischen zwei Indexnummern abgerufen wird.

Die Syntax für diese Konstruktion lautettuple[x:y:z], wobei sichz auf Schritt bezieht. Machen wir eine größere Liste, schneiden sie in Scheiben und geben dem Schritt den Wert 2:

numbers = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

print(numbers[1:11:2])
Output(1, 3, 5, 7, 9)

Unsere Konstruktionnumbers[1:11:2] gibt die Werte zwischen Indexnummern einschließlich1 und ausschließlich11 aus. Der Schrittwert von2 weist das Programm an, nur alle anderen Elemente auszudrucken.

Wir können die ersten beiden Parameter weglassen und stride alleine als Parameter mit der Syntaxtuple[::z] verwenden:

print(numbers[::3])
Output(0, 3, 6, 9, 12)

Durch Ausdrucken des Tupelsnumbers mit dem Schritt3 wird nur jedes dritte Element gedruckt:

0, 1, 2,3, 4, 5,6, 7, 8,9, 10, 11,12

Das Schneiden von Tupeln mit positiven und negativen Indexnummern und das Anzeigen des Schrittes bieten uns die Kontrolle, um die Ausgabe zu erhalten, die wir erzielen möchten.

Verketten und Multiplizieren von Tupeln

Operators können verwendet werden, um Tupel zu verketten oder zu multiplizieren. Die Verkettung erfolgt mit dem Operator+und die Multiplikation mit dem Operator*.

Der Operator+ kann verwendet werden, um zwei oder mehr Tupel miteinander zu verketten. Wir können die Werte von zwei vorhandenen Tupeln einem neuen Tupel zuweisen:

coral = ('blue coral', 'staghorn coral', 'pillar coral', 'elkhorn coral')
kelp = ('wakame', 'alaria', 'deep-sea tangle', 'macrocystis')

coral_kelp = (coral + kelp)

print(coral_kelp)
Output('blue coral', 'staghorn coral', 'pillar coral', 'elkhorn coral', 'wakame', 'alaria', 'deep-sea tangle', 'macrocystis')

Da der Operator+verketten kann, kann er zum Kombinieren von Tupeln zu einem neuen Tupel verwendet werden, obwohl ein vorhandenes Tupel nicht geändert werden kann.

Der Operator* kann zum Multiplizieren von Tupeln verwendet werden. Möglicherweise müssen Sie Kopien aller Dateien in einem Verzeichnis auf einem Server erstellen oder eine Wiedergabeliste für Freunde freigeben. In diesen Fällen müssen Sie die Datensammlungen multiplizieren.

Multiplizieren wir das Tupelcoralmit 2 und das Tupelkelpmit 3 und weisen Sie diese neuen Tupeln zu:

multiplied_coral = coral * 2
multiplied_kelp = kelp * 3

print(multiplied_coral)
print(multiplied_kelp)
Output('blue coral', 'staghorn coral', 'pillar coral', 'elkhorn coral', 'blue coral', 'staghorn coral', 'pillar coral', 'elkhorn coral')
('wakame', 'alaria', 'deep-sea tangle', 'macrocystis', 'wakame', 'alaria', 'deep-sea tangle', 'macrocystis', 'wakame', 'alaria', 'deep-sea tangle', 'macrocystis')

Mit dem Operator*können wir unsere Tupel so oft replizieren, wie wir es angegeben haben, und neue Tupel basierend auf der ursprünglichen Datensequenz erstellen.

Bestehende Tupel können mithilfe der Operatoren+ und* verkettet oder multipliziert werden, um neue Tupel zu bilden.

Tupel-Funktionen

Es gibt einige integrierte Funktionen, mit denen Sie mit Tupeln arbeiten können. Schauen wir uns einige davon an.

len ()

Wie bei Zeichenfolgen und Listen können wir die Länge eines Tupels mithilfe vonlen() berechnen, wobei wir das Tupel als Parameter übergeben, wie in:

len(coral)

Diese Funktion ist nützlich, wenn Sie beispielsweise minimale oder maximale Sammlungslängen erzwingen oder sequenzierte Daten vergleichen müssen.

Wenn wir die Länge für unsere Tupelkelp undnumbers ausdrucken, erhalten wir die folgende Ausgabe:

print(len(kelp))
print(len(numbers))
Output4
13

Wir erhalten die obige Ausgabe, weil das Tupelkelp 4 Elemente enthält:

kelp = ('wakame', 'alaria', 'deep-sea tangle', 'macrocystis')

Und das Tupelnumbers hat 13 Elemente:

numbers = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

Obwohl diese Beispiele relativ wenige Elemente enthalten, bietet uns die Funktionlen()die Möglichkeit, zu sehen, wie viele Elemente sich in großen Tupeln befinden.

max () und min ()

Wenn wir mit Tupeln arbeiten, die aus numerischen Elementen bestehen (einschließlichintegers undfloats), können wir die Funktionenmax() undmin() verwenden, um die höchsten und niedrigsten Werte in der zu finden jeweiliges Tupel.

Mit diesen Funktionen können Informationen zu quantitativen Daten wie Testergebnissen, Temperaturen, Preisen usw. abgerufen werden.

Schauen wir uns ein Tupel an, das aus floats besteht:

more_numbers = (11.13, 34.87, 95.59, 82.49, 42.73, 11.12, 95.57)

Um diemax() zu erhalten, würden wir das Tupel wie inmax(more_numbers) an die Funktion übergeben. Wir werden dies mit der Funktionprint() kombinieren, damit wir unsere Ergebnisse ausgeben können:

print(max(more_numbers))
Output95.59

Die Funktionmax() hat den höchsten Wert in unserem Tupel zurückgegeben.

Ebenso können wir diemin()-Funktion verwenden:

print(min(more_numbers))
Output11.12

Hier wurde der kleinste Schwimmer im Tupel gefunden und ausgedruckt.

Genau wie bei der Funktionlen() können die Funktionenmax() undmin() sehr nützlich sein, wenn Sie mit Tupeln arbeiten, die viele Werte enthalten.

Wie sich Tupel von Listen unterscheiden

Tupel unterscheiden sich in erster Linie dadurch von Listen, dass sie nicht geändert werden können. Dies bedeutet, dass Elemente nicht zu Tupeln hinzugefügt oder daraus entfernt werden können und Elemente nicht innerhalb von Tupeln ersetzt werden können.

Sie können jedochconcatenate 2 oder mehr Tupel verwenden, um ein neues Tupel zu bilden.

Betrachten wir unsercoral-Tupel:

coral = ('blue coral', 'staghorn coral', 'pillar coral', 'elkhorn coral')

Angenommen, wir möchten den Artikel'blue coral' durch einen anderen Artikel namens'black coral' ersetzen. Wenn wir versuchen, diese Ausgabe wie bei einer Liste zu ändern, geben Sie Folgendes ein:

coral[0] = 'black coral'

Wir erhalten einen Fehler als Ausgabe:

OutputTypeError: 'tuple' object does not support item assignment

Dies liegt daran, dass Tupel nicht geändert werden können.

Wenn wir ein Tupel erstellen und feststellen, dass wir wirklich eine Liste benötigen, können wir sie in eine Liste umwandeln. Um ein Tupel in eine Liste umzuwandeln, können Sie dies mitlist() tun:

list(coral)

Und jetzt wird der Datentypcoraleine Liste sein:

coral = ['blue coral', 'staghorn coral', 'pillar coral']

Wir können sehen, dass das Tupel in eine Liste konvertiert wurde, da die Klammern in eckige Klammern geändert wurden.

Ebenso können wir Listen in Tupel mittuple() konvertieren.

Weitere Informationen zur Datentypkonvertierung finden Sie unter „https://www.digitalocean.com/community/tutorials/how-to-convert-data-types-in-python-3[Wie konvertiere ich Datentypen in Python 3?“. . "

Fazit

Der Tupel-Datentyp ist ein sequenzierterdata type, der nicht geändert werden kann. Er bietet eine Optimierung für Ihre Programme, da er etwas schneller ist als Listen, die Python verarbeiten kann. Wenn andere an Ihrem Code mit Ihnen zusammenarbeiten, wird Ihnen durch die Verwendung von Tupeln mitgeteilt, dass Sie nicht beabsichtigen, diese Wertesequenzen zu ändern.

Dieses Tutorial befasste sich mit den grundlegenden Funktionen von Tupeln, einschließlich Indizierung, Aufteilung und Verkettung von Tupeln, und zeigte die verfügbaren integrierten Funktionen.