Listen und Tupel in Python sind zwei Klassen von Python-Datenstrukturen. Die Listenstruktur ist dynamisch und kann leicht geändert werden, während die Tupelstruktur statisch ist und nicht geändert werden kann. Dies bedeutet, dass das Tupel im Allgemeinen schneller ist als die Liste. Listen werden durch eckige Klammern und Tupel durch Klammern gekennzeichnet.
Unterschiede zwischen Liste und Tupel in Python
Snein | AUFFÜHREN | TUPLE |
|---|---|---|
| 1 | Listen Sind veränderlich | Tupel sind unveränderlich |
| 2 | Die Auswirkung von Iterationen ist zeitaufwändig | Die Implikation von Iterationen ist vergleichsweise schneller |
| 3 | Die Liste eignet sich besser zum Ausführen von Vorgängen wie Einfügen und Löschen. | Für den Zugriff auf die Elemente eignet sich ein Tuple-Datentyp |
| 4 | Listen verbrauchen mehr Speicher | Tupel verbraucht im Vergleich zur Liste weniger Speicher |
| 5 | Listen verfügen über mehrere integrierte Methoden | Tuple verfügt nicht über viele integrierte Methoden. |
| 6 | Es ist wahrscheinlicher, dass unerwartete Änderungen und Fehler auftreten | Da sich Tupel nicht ändern, sind sie weitaus weniger fehleranfällig. |
Python-Liste vs. Python-Tupel
Testen Sie, ob Tupel unveränderlich und Listen veränderbar sind
Hier vergleichen wir die Listen- und Tupel-Veränderlichkeitstests.
Python3 # Creating a List with # the use of Numbers # code to test that tuples are mutable List = [1, 2, 4, 4, 3, 3, 3, 6, 5] print('Original list ', List) List[3] = 77 print('Example to show mutability ', List)> Ausgabe
Original list [1, 2, 4, 4, 3, 3, 3, 6, 5] Example to show mutability [1, 2, 4, 77, 3, 3, 3, 6, 5]>
Das können wir hier sehen Tupel kann nicht geändert werden.
Python3 # code to test that tuples are immutable tuple1 = (0, 1, 2, 3) tuple1[0] = 4 print(tuple1)>
Ausgabe:
Java aktualisieren
Traceback (most recent call last): File 'e0eaddff843a8695575daec34506f126.py', line 3, in tuple1[0]=4 TypeError: 'tuple' object does not support item assignment>
Welche Liste oder welches Tupel ist in Python besser?
Um diese Antwort auf die Probe zu stellen, führen wir einige Operationen für ein Python-Tupel und eine Python-Liste aus. Dies gibt uns eine bessere Vorstellung davon, welche Liste oder welches Tupel in Python besser ist.
Testen Sie, ob Tupel speichereffizient sind
Da Tupel in einem einzigen Speicherblock gespeichert werden, benötigen sie keinen zusätzlichen Platz für neue Objekte, während die Listen in zwei Blöcken aufgeteilt sind, zunächst in den festen Block mit allen Python Objektinformationen und zweitens einen Block variabler Größe für die Daten.
Python3 import sys a_list = [] a_tuple = () a_list = ['Geeks', 'For', 'Geeks'] a_tuple = ('Geeks', 'For', 'Geeks') print(sys.getsizeof(a_list)) print(sys.getsizeof(a_tuple))> Ausgabe
96 80>
Testen Sie, ob die Implikation von Iterationen in Tupeln vergleichsweise schneller ist
Da Tupel in einem einzigen Speicherblock gespeichert werden, benötigen sie keinen zusätzlichen Platz für neue Objekte, da sie unveränderlich sind, wohingegen die Listen in zwei Blöcken zugeordnet sind, zunächst in den festen mit allen Python Objektinformationen und zweitens einen Block variabler Größe für die Daten, was sie noch schneller macht.
Python3 # code import sys, platform import time l=list(range(100000001)) t=tuple(range(100000001)) start = time.time_ns() for i in range(len(t)): a = t[i] end = time.time_ns() print('Total lookup time for Tuple: ', end - start) start = time.time_ns() for i in range(len(l)): a = l[i] end = time.time_ns() print('Total lookup time for LIST: ', end - start)> Ausgabe
Total lookup time for Tuple: 7038208700 Total lookup time for LIST: 19646516700>
Veränderliche Liste vs. unveränderliche Tupel
In Python Sowohl Listen als auch Tupel unterstützen eine Reihe von Vorgängen, einschließlich Indizierung, Slicing, Verkettung und mehr. Aufgrund ihrer Veränderlichkeit bzw. Unveränderlichkeit gibt es jedoch einige Unterschiede zwischen den Operationen, die für Listen und Tupel verfügbar sind.
Python-Indizierung
Sowohl Listen als auch Tupel ermöglichen den Zugriff auf einzelne Elemente über ihren Index, beginnend bei 0.
Python3 my_list = [1, 2, 3] my_tuple = (4, 5, 6) print(my_list[0]) # Output: 1 print(my_tuple[1]) # Output: 5>
Ausgabe
1 5>
Python-Slicing
Sowohl Listen als auch Tupel ermöglichen es Ihnen, eine Teilmenge von Elementen mithilfe von Slicing zu extrahieren.
plsqlPython3
my_list = [1, 2, 3, 4, 5] my_tuple = (6, 7, 8, 9, 10) print(my_list[1:3]) # Output: [2, 3] print(my_tuple[:3]) # Output: (6, 7, 8)>
Ausgabe
[2, 3] (6, 7, 8)>
Python-Verkettung
Sowohl Listen als auch Tupel können mit dem +-Operator verkettet werden.
Python3 list1 = [1, 2, 3] list2 = [4, 5, 6] tuple1 = (7, 8, 9) tuple2 = (10, 11, 12) print(list1 + list2) # Output: [1, 2, 3, 4, 5, 6] print(tuple1 + tuple2) # Output: (7, 8, 9, 10, 11, 12)>
Ausgabe
[1, 2, 3, 4, 5, 6] (7, 8, 9, 10, 11, 12)>
Notiz - Allerdings gibt es einige Operationen, die aufgrund ihrer Veränderbarkeit nur für Listen verfügbar sind.
Python-Anhang
Listen können mit der Methode append() um neue Elemente angehängt werden.
Python3 my_list = [1, 2, 3] my_list.append(4) print(my_list) # Output: [1, 2, 3, 4]>
Ausgabe
[1, 2, 3, 4]>
Python-Erweiterung
Listen können auch mit der Methode „extend()“ um eine andere Liste erweitert werden.
Entfernen Sie den NPM-CachePython3
list1 = [1, 2, 3] list2 = [4, 5, 6] list1.extend(list2) print(list1) # Output: [1, 2, 3, 4, 5, 6]>
Ausgabe
[1, 2, 3, 4, 5, 6]>
Python entfernen
Listen Mit der Methode „remove()“ können Elemente entfernt werden.
Python3 my_list = [1, 2, 3, 4] my_list.remove(2) print(my_list) # Output: [1, 3, 4]>
Ausgabe
[1, 3, 4]>
Wann werden Tupel anstelle von Listen verwendet?
In Python Sowohl Tupel als auch Listen werden zum Speichern von Datensammlungen verwendet, weisen jedoch einige wichtige Unterschiede auf. Hier sind einige Situationen, in denen Sie möglicherweise Tupel anstelle von Listen verwenden möchten:
Unveränderliche Daten – Tupel sind unveränderlich, sodass ihr Inhalt nach ihrer Erstellung nicht mehr geändert werden kann. Dies macht Tupel zu einer geeigneten Option zum Speichern von Informationen, die sich nicht ändern sollten, wie z. B. Setup-Einstellungen, konstante Werte oder andere Informationen, die während der Ausführung Ihres Programms gleich bleiben sollten.
Leistung – Tupel sind leichter als Listen und lassen sich möglicherweise schneller generieren, darauf zugreifen und durchlaufen, da sie unveränderlich sind. Die Verwendung eines Tupels kann effektiver sein als die Verwendung von a Liste wenn Sie über eine riesige Datensammlung verfügen, die Sie regelmäßig speichern, abrufen und verwenden müssen und die nicht geändert werden muss.
Datenintegrität - Indem sichergestellt wird, dass die Struktur und der Inhalt der Daten konsistent bleiben, können Tupel verwendet werden, um die Datenintegrität sicherzustellen. Um sicherzustellen, dass der Aufrufer weiß, wie viele Daten er beispielsweise bei einer Funktion erwarten kann kehrt zurück B. eine festgelegte Menge an Werten, möchten Sie diese möglicherweise als Tupel und nicht als Liste zurückgeben.