Python-Tupel (mit Beispielen)

In diesem Artikel erfahren Sie alles über Python-Tupel. Genauer gesagt, was sind Tupel, wie werden sie erstellt, wann werden sie verwendet und verschiedene Methoden, mit denen Sie vertraut sein sollten.

Video: Python-Listen und Tupel

Ein Tupel in Python ähnelt einer Liste. Der Unterschied zwischen den beiden besteht darin, dass wir die Elemente eines Tupels nach seiner Zuweisung nicht mehr ändern können, während wir die Elemente einer Liste ändern können.

Ein Tupel erstellen

Ein Tupel wird erstellt, indem alle Elemente (Elemente) in Klammern gesetzt werden (), die durch Kommas getrennt sind. Die Klammern sind optional, es wird jedoch empfohlen, sie zu verwenden.

Ein Tupel kann eine beliebige Anzahl von Elementen enthalten und von verschiedenen Typen sein (Ganzzahl, Gleitkomma, Liste, Zeichenfolge usw.).

 # Different types of tuples # Empty tuple my_tuple = () print(my_tuple) # Tuple having integers my_tuple = (1, 2, 3) print(my_tuple) # tuple with mixed datatypes my_tuple = (1, "Hello", 3.4) print(my_tuple) # nested tuple my_tuple = ("mouse", (8, 4, 6), (1, 2, 3)) print(my_tuple)

Ausgabe

 () (1, 2, 3) (1, 'Hallo', 3.4) ('Maus', (8, 4, 6), (1, 2, 3))

Ein Tupel kann auch ohne Klammern erstellt werden. Dies ist als Tupelverpackung bekannt.

 my_tuple = 3, 4.6, "dog" print(my_tuple) # tuple unpacking is also possible a, b, c = my_tuple print(a) # 3 print(b) # 4.6 print(c) # dog

Ausgabe

 (3, 4.6, "Hund") 3 4.6 Hund

Das Erstellen eines Tupels mit einem Element ist etwas schwierig.

Ein Element in Klammern zu haben, reicht nicht aus. Wir benötigen ein nachfolgendes Komma, um anzuzeigen, dass es sich tatsächlich um ein Tupel handelt.

 my_tuple = ("hello") print(type(my_tuple)) # # Creating a tuple having one element my_tuple = ("hello",) print(type(my_tuple)) # # Parentheses is optional my_tuple = "hello", print(type(my_tuple)) # 

Ausgabe

 

Zugriff auf Tupelelemente

Es gibt verschiedene Möglichkeiten, auf die Elemente eines Tupels zuzugreifen.

1. Indizierung

Wir können den Indexoperator verwenden, ()um auf ein Element in einem Tupel zuzugreifen, wobei der Index bei 0 beginnt.

Ein Tupel mit 6 Elementen hat also Indizes von 0 bis 5. Wenn Sie versuchen, auf einen Index außerhalb des Tupelindexbereichs (6,7,… in diesem Beispiel) zuzugreifen, wird ein ausgelöst IndexError.

Der Index muss eine Ganzzahl sein, daher können wir weder float noch andere Typen verwenden. Dies führt zu TypeError.

Ebenso wird auf verschachtelte Tupel mithilfe der verschachtelten Indizierung zugegriffen, wie im folgenden Beispiel gezeigt.

 # Accessing tuple elements using indexing my_tuple = ('p','e','r','m','i','t') print(my_tuple(0)) # 'p' print(my_tuple(5)) # 't' # IndexError: list index out of range # print(my_tuple(6)) # Index must be an integer # TypeError: list indices must be integers, not float # my_tuple(2.0) # nested tuple n_tuple = ("mouse", (8, 4, 6), (1, 2, 3)) # nested index print(n_tuple(0)(3)) # 's' print(n_tuple(1)(1)) # 4

Ausgabe

 Punkte 4

2. Negative Indizierung

Python erlaubt eine negative Indizierung für seine Sequenzen.

Der Index -1 bezieht sich auf das letzte Element, -2 auf das vorletzte Element usw.

 # Negative indexing for accessing tuple elements my_tuple = ('p', 'e', 'r', 'm', 'i', 't') # Output: 't' print(my_tuple(-1)) # Output: 'p' print(my_tuple(-6))

Ausgabe

 tp

3. Schneiden

Mit dem Doppelpunkt des Slicing-Operators können wir auf eine Reihe von Elementen in einem Tupel zugreifen :.

 # Accessing tuple elements using slicing my_tuple = ('p','r','o','g','r','a','m','i','z') # elements 2nd to 4th # Output: ('r', 'o', 'g') print(my_tuple(1:4)) # elements beginning to 2nd # Output: ('p', 'r') print(my_tuple(:-7)) # elements 8th to end # Output: ('i', 'z') print(my_tuple(7:)) # elements beginning to end # Output: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') print(my_tuple(:))

Ausgabe

 ('r', 'o', 'g') ('p', 'r') ('i', 'z') ('p', 'r', 'o', 'g', 'r ',' a ',' m ',' i ',' z ')

Das Schneiden kann am besten visualisiert werden, indem der Index wie unten gezeigt zwischen den Elementen betrachtet wird. Wenn wir also auf einen Bereich zugreifen möchten, benötigen wir den Index, der den Teil aus dem Tupel herausschneidet.

Element Slicing in Python

Tupel ändern

Im Gegensatz zu Listen sind Tupel unveränderlich.

Dies bedeutet, dass Elemente eines Tupels nach ihrer Zuweisung nicht mehr geändert werden können. Wenn das Element selbst ein veränderbarer Datentyp wie eine Liste ist, können seine verschachtelten Elemente geändert werden.

Wir können auch verschiedenen Werten ein Tupel zuweisen (Neuzuweisung).

 # Changing tuple values my_tuple = (4, 2, 3, (6, 5)) # TypeError: 'tuple' object does not support item assignment # my_tuple(1) = 9 # However, item of mutable element can be changed my_tuple(3)(0) = 9 # Output: (4, 2, 3, (9, 5)) print(my_tuple) # Tuples can be reassigned my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') # Output: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') print(my_tuple)

Ausgabe

 (4, 2, 3, (9, 5)) ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')

We can use + operator to combine two tuples. This is called concatenation.

We can also repeat the elements in a tuple for a given number of times using the * operator.

Both + and * operations result in a new tuple.

 # Concatenation # Output: (1, 2, 3, 4, 5, 6) print((1, 2, 3) + (4, 5, 6)) # Repeat # Output: ('Repeat', 'Repeat', 'Repeat') print(("Repeat",) * 3)

Output

 (1, 2, 3, 4, 5, 6) ('Repeat', 'Repeat', 'Repeat')

Deleting a Tuple

As discussed above, we cannot change the elements in a tuple. It means that we cannot delete or remove items from a tuple.

Deleting a tuple entirely, however, is possible using the keyword del.

 # Deleting tuples my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') # can't delete items # TypeError: 'tuple' object doesn't support item deletion # del my_tuple(3) # Can delete an entire tuple del my_tuple # NameError: name 'my_tuple' is not defined print(my_tuple)

Output

 Traceback (most recent call last): File "", line 12, in NameError: name 'my_tuple' is not defined

Tuple Methods

Methods that add items or remove items are not available with tuple. Only the following two methods are available.

Some examples of Python tuple methods:

 my_tuple = ('a', 'p', 'p', 'l', 'e',) print(my_tuple.count('p')) # Output: 2 print(my_tuple.index('l')) # Output: 3

Output

 2 3

Other Tuple Operations

1. Tuple Membership Test

We can test if an item exists in a tuple or not, using the keyword in.

 # Membership test in tuple my_tuple = ('a', 'p', 'p', 'l', 'e',) # In operation print('a' in my_tuple) print('b' in my_tuple) # Not in operation print('g' not in my_tuple)

Output

 True False True

2. Iterating Through a Tuple

We can use a for loop to iterate through each item in a tuple.

 # Using a for loop to iterate through a tuple for name in ('John', 'Kate'): print("Hello", name)

Output

 Hello John Hello Kate

Advantages of Tuple over List

Since tuples are quite similar to lists, both of them are used in similar situations. However, there are certain advantages of implementing a tuple over a list. Below listed are some of the main advantages:

  • Wir verwenden im Allgemeinen Tupel für heterogene (unterschiedliche) Datentypen und Listen für homogene (ähnliche) Datentypen.
  • Da Tupel unveränderlich sind, ist das Durchlaufen eines Tupels schneller als mit Liste. Es gibt also einen leichten Leistungsschub.
  • Tupel, die unveränderliche Elemente enthalten, können als Schlüssel für ein Wörterbuch verwendet werden. Bei Listen ist dies nicht möglich.
  • Wenn Sie Daten haben, die sich nicht ändern, wird durch die Implementierung als Tupel garantiert, dass sie schreibgeschützt bleiben.

Interessante Beiträge...