Python-Liste gegen Tupel (mit Beispielen)

In diesem Artikel lernen wir die wichtigsten Unterschiede zwischen der Liste und den Tupeln sowie die Verwendung dieser beiden Datenstrukturen kennen.

Listen und Tupel speichern ein oder mehrere Objekte oder Werte in einer bestimmten Reihenfolge. Die in einer Liste oder einem Tupel gespeicherten Objekte können von einem beliebigen Typ sein, einschließlich des durch das Schlüsselwort None definierten Nichts-Typs.

Listen und Tupel sind in den meisten Zusammenhängen ähnlich, aber es gibt einige Unterschiede, die wir in diesem Artikel finden werden.

Syntaxunterschiede

Die Syntax von Liste und Tupel unterscheidet sich geringfügig. Listen sind in eckigen Klammern ()und Tupel in Klammern angegeben ().

Beispiel 1.1: Erstellen einer Liste vs. Erstellen eines Tupels

 list_num = (1,2,3,4) tup_num = (1,2,3,4) print(list_num) print(tup_num)

Ausgabe:

 (1,2,3,4) (1,2,3,4)

Oben haben wir eine Variable namens list_num definiert, die eine Liste von Zahlen von 1bis enthält. 4Die Liste ist von Klammern umgeben (). Außerdem haben wir eine Variable tup_num definiert. welches ein Tupel von Zahlen von 1bis enthält 4. Das Tupel ist von Klammern umgeben ().

In Python haben wir eine type()Funktion, die den Typ des erstellten Objekts angibt.

Beispiel 1.2: Suchen Sie den Typ der Datenstruktur mit der Funktion type ()

 type(list_num) type(tup_num)

Ausgabe:

 Liste Tupel

Veränderbare Liste gegen unveränderliche Tupel

Die Liste ist veränderlich, dh die Liste kann nach ihrer Erstellung je nach Bedarf geändert oder modifiziert werden, während das Tupel unveränderlich ist, dh das Tupel kann nach seiner Erstellung nicht mehr geändert oder modifiziert werden.

Beispiel 2.1: Ändern einer Artikelliste im Vergleich zu Tupel

 list_num(2) = 5 print(list_num) tup_num(2) = 5

Ausgabe:

 (1,2,5,4) Traceback (letzter Aufruf zuletzt): Datei "python", Zeile 6, in TypeError: Das Objekt 'tuple' unterstützt keine Elementzuweisung

Im obigen Code haben wir 5list_num am Index zugewiesen 2und 5am Index 2in der Ausgabe gefunden. Außerdem haben wir 5tup_num am Index zugewiesen 2und wir haben type error. Wir können das Tupel aufgrund seiner unveränderlichen Natur nicht ändern.

Hinweis: Da das Tupel unveränderlich ist, sind diese fest und die Liste variabel.

Verfügbare Operationen

Listen haben mehr eingebaute Funktionen als Tupel. Wir können die dir((object))eingebaute Funktion verwenden, um alle zugehörigen Funktionen für Liste und Tupel abzurufen.

Beispiel 3.1: Listenverzeichnis

 dir(list_num)

Ausgabe:

('__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', ' __gt__ ',' __hash__ ',' __iadd__ ',' __imul__ ',' __init__ ',' __init_subclass__ ',' __iter__ ',' __le__ ',' __len__ ',' __lt__ ',' __mul__ ',' __ne__ ',' __new__ ' , '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', ' Kopieren ',' Zählen ',' Erweitern ',' Index ','einfügen ',' pop ',' entfernen ',' umkehren ',' sortieren ')

Beispiel 3.2: Tupelverzeichnis

 dir(tup_num)

Ausgabe:

 ('__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', ' __gt__ ',' __hash__ ',' __init__ ',' __init_subclass__ ',' __iter__ ',' __le__ ',' __len__ ',' __lt__ ',' __mul__ ',' __ne__ ',' __new__ ',' __reduce__ ',' __reduce_ex__ ' , '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index')

We can clearly see that, there are so many additional functionalities associated with a list over a tuple.We can do insert and pop operation, removing and sorting elements in the list with inbuilt functions which is not available in Tuple.

Size Comparison

Tuples operation has smaller size than that of list, which makes it a bit faster but not that much to mention about until you have a huge number of elements.

Example 5.1: Calculate size of List vs. Tuple

 a= (1,2,3,4,5,6,7,8,9,0) b= (1,2,3,4,5,6,7,8,9,0) print('a=',a.__sizeof__()) print('b=',b.__sizeof__())

Output:

 a= 104 b= 120

In above code we have tuple a and list b with same items but the size of tuple is less than the list.

Different Use Cases

At first sight, it might seem that lists can always replace tuples. But tuples are extremely useful data structures

  1. Using a tuple instead of a list can give the programmer and the interpreter a hint that the data should not be changed.
  2. Tuples are commonly used as the equivalent of a dictionary without keys to store data. For Example,
     (('Swordfish', 'Dominic Sena', 2001), ('Snowden', ' Oliver Stone', 2016), ('Taxi Driver', 'Martin Scorsese', 1976))
    Above example contains tuples inside list which has a list of movies.
  3. Reading data is simpler when tuples are stored inside a list. For example,
     ((2,4), (5,7), (3,8), (5,9))
    is easier to read than
     ((2,4), (5,7), (3,8), (5,9))

Tuple can also be used as key in dictionary due to their hashable and immutable nature whereas Lists are not used as key in a dictionary because list can’t handle __hash__() and have mutable nature.

 key_val= (('alpha','bravo'):123) #Valid key_val = (('alpha','bravo'):123) #Invalid 

Key points to remember:

  1. The literal syntax of tuples is shown by parentheses () whereas the literal syntax of lists is shown by square brackets () .
  2. Listen haben eine variable Länge, Tupel hat eine feste Länge.
  3. Liste ist veränderlich, Tupel unveränderlich.
  4. Liste hat mehr Funktionen als das Tupel.

Interessante Beiträge...