Warum gibt es überhaupt TUPLES?

Feb 24 2023
Ich habe vor drei Jahren angefangen, mit Python zu arbeiten. Während ich mich intensiv mit verschiedenen Kursmaterialien befasste, darunter Datentypen, Klassentypen und mehr, machte ich eine Pause, um über den Zweck und die Bedeutung von Tupeln nachzudenken, was mich dazu veranlasste, tiefer darüber nachzudenken, warum es ist überhaupt eine Sache? Um ehrlich zu sein, habe ich in meinen Projekten kaum Tupel verwendet und bin nie auf die Tatsache gestoßen, dass es einen besseren Gebrauchsfall als Listen geben könnte (was so ziemlich das Gleiche bewirkt). Ich habe nicht einmal darüber nachgedacht und das Richtige gefunden Anwendungsfall dafür BIS JETZT!! Ich bin auf Tuples auf ein Video von einem meiner Lieblings-Youtube-Kanäle NetworkChuck gestoßen (Abonnieren Sie ihn unbedingt, er ist großartig ❤️). Er hatte die gleiche Frage wie ich oder vielleicht auch mein Unterbewusstsein.

Ich begann vor drei Jahren mit Python zu arbeiten. Während ich mich intensiv mit verschiedenen Kursmaterialien befasste, darunter Datentypen, Klassentypen und mehr, machte ich eine Pause, um über den Zweck und die Bedeutung von Tupeln nachzudenken, was mich dazu veranlasste, tiefer darüber nachzudenken , warum es ist überhaupt eine Sache?

Um ehrlich zu sein, habe ich in meinen Projekten kaum Tupel verwendet und bin nie auf die Tatsache gestoßen, dass es einen besseren Gebrauchsfall als Listen geben könnte (was so ziemlich das Gleiche bewirkt). Ich habe nicht einmal darüber nachgedacht und das Richtige gefunden Anwendungsfall dafür

BIS JETZT!!

Ich bin auf Tuples auf ein Video von einem meiner Lieblings-Youtube-Kanäle NetworkChuck gestoßen (Abonnieren Sie ihn unbedingt, er ist großartig ❤️). Er hatte die gleiche Frage wie ich oder vielleicht auch mein Unterbewusstsein. Wozu brauchen wir Tupel, wenn wir bereits Listen haben?

Natürlich wissen wir, dass [list] in der eckigen Klammer steht und (tuples) in der runden Klammer, aber was sonst? Ich meine, schauen Sie sich das Bild an. Wir können die Zeichenfolgen und Ganzzahlen auf die gleiche Weise wie in der Liste haben.

Der Typ beider Datentypen wird gedruckt

Wie unterscheiden sich Tupel von Listen?

Warum brauchen wir Tupel?

Warum existiert es überhaupt?

Beantworten wir alle Fragen und klären wir das Ganze!

Unveränderlichkeit

Wie Chuck sagte, „Unveränderlich“ ist nur ein schickes Wort für „unveränderlich“.

Unveränderlich == nicht veränderbar

veränderlich == veränderbar

( TUPLES ) sind unveränderlich, was bedeutet, dass Sie die Daten in diesen runden Klammern nicht ändern können. Andererseits sind [ LISTS ] veränderbar und Daten können in diesen eckigen Klammern geändert werden

Versuchen wir, den Wert in einer Liste zu ändern, da diese veränderlich sind

lists = ["Shivam", "Vasudeva",10]
lists = ["Shivam", "Vasudeva",10]
print("Before changing-- ",lists)
lists[2] = 14
print("After changing-- ", lists)
Before changing--  ['Shivam', 'Vasudeva', 10]
After changing--  ['Shivam', 'Vasudeva', 14]

tups = ("Shivam", "Vasudeva",10)
print("Before changing-- ",tups)
tups[2] = 14
print("After changing-- ",tups)

Die Frage ist nun: Wie hilft es? Wie verbessert es unseren Code?

Eine Funktion weniger als LIST zu haben, macht TUPLES besser? Wie macht das Sinn?

Geschwindigkeit ️

Die Tatsache, dass Tupel unveränderlich sind, macht sie schneller als Listen.

Chuck hat in seinem Video einen kleinen Test durchgeführt, um zu sehen, wie schnell Tupel sind. Er führte einen kleinen Code für Tupel und Listen aus, um die Zeit zu erfassen, die beide Datentypen benötigen, um die Ergebnisse zu liefern

import timeit
#SPEED TEST
#Lists
print("List = ",timeit.timeit(stmt= '["Toronto", "Calgary","Montreal", "Vancouver", 647, 416, 437]', number=100000000))

#tuples 
print("Tuples = ",timeit.timeit(stmt= '("Toronto", "Calgary","Montreal", "Vancouver", 647, 416, 437)', number=100000000))

Die Liste benötigte zehnmal mehr als TUPLES. Ist es nicht Wahnsinn?

Diese Art von Geschwindigkeit wird im kleinen Maßstab keine Rolle spielen, aber für große Berechnungen, bei denen die Geschwindigkeit ein großer Faktor ist, kann ein Tupel einen großen Unterschied machen.

Nun, es gibt eine einfache Erklärung für diesen Geschwindigkeitsunterschied.

Listen sind veränderlich , wir können sie ändern und aus dem gleichen Grund werden sie in 2 Speicherblöcken gespeichert, während TUPLES aufgrund ihrer UNVERÄNDERBARKEIT nur in 1 Speicherblock gespeichert werden

Das klingt alles ausgefallen, aber Sie sind vielleicht immer noch nicht überzeugt, warum wir Tupel verwenden MÜSSEN‼️

Art der Daten

Obwohl [ Listen ] verschiedene Arten von Datentypen in einer Liste enthalten können, wird dies laut Stack Overflow nicht als bewährte Vorgehensweise angesehen.

Die korrekte Verwendung von Listen besteht darin, einen HOMOGENEN Datentyp zu verwenden, was bedeutet, dass eine Liste denselben Datentyp haben muss.

#List Homogenous data
["Toronto", "Calgary", "Montreal", "Vancouver"]
#String is the only datatype

#Heterogeneous Data 
[("Toronto", 647, "Dundas"), ("Calgary", 587, "Ravenstern")]
#String and integers

Sie brauchen nicht einmal ( ), um ein Tupel zu erstellen. Klingt dumm, oder? Schauen Sie sich den Code unten an. Ich habe keine runden Klammern gesetzt und den Klassentyp ausgegeben, zu dem er gehört.

canada = "Toronto", "Calgary","Montreal"
print(type(canada))

      
                
Result of executing of code above

canada = "Toronto",
print(type(canada))

Lassen Sie mich in den Kommentaren wissen, ob Sie das wussten oder ob Sie weitere seltsame Dinge wissen, die Tupel tun können.

Lerne weiter!!