Benannte Tupel sind leichte und einfach zu erstellende Objekttypen, die die Benutzerfreundlichkeit von Tupeln durch die Bereitstellung benannter Attribute verbessern. Schauen wir uns ihre Verwendung und den Vergleich mit regulären Tupeln genauer an.
Um benannte Tupel zu erstellen, verwenden wir die Factory-Funktion „collections.namedtuple“. Um beispielsweise ein benanntes Tupel für Punkte zu definieren:
from collections import namedtuple Point = namedtuple('Point', 'x y')
Instanzen dieses benannten Tupels können wie reguläre Tupel erstellt werden:
pt1 = Point(1.0, 5.0) pt2 = Point(2.5, 1.5)
Die Vorteile der Verwendung benannter Tupel werden deutlich, wenn Verweisen auf ihre Attribute:
line_length = sqrt((pt1.x - pt2.x)**2 + (pt1.y - pt2.y)**2) # Object-like syntax
Benannte Tupel werden empfohlen, wenn:
Benannte Tupel können sogar unveränderliche Klassen nur durch Felder ersetzen. Sie können auch als Basisklassen für benutzerdefinierte benannte Tupel dienen:
class Point(namedtuple('Point', 'x y')): [...] # Define additional methods
Es gibt kein integriertes Äquivalent für „benannte Listen“ in Python. Für veränderbare Datensatztypen gibt es jedoch Rezepte oder Module von Drittanbietern, die das Festlegen neuer Werte für Attribute ermöglichen:
from rcdtype import recordtype Point = recordtype('Point', 'x y') pt1 = Point(1.0, 5.0) pt1.x = 2.0 # Mutable!
Benannte Tupel können mit pt1._asdict() wie Wörterbücher manipuliert werden und bieten so einen einfachen Zugriff auf ihre Felder und Kompatibilität mit Wörterbuchoperationen.
Benannte Tupel sind ein leistungsstarkes Werkzeug in Python und bieten eine saubere und intuitive Möglichkeit dazu stellen Daten dar und bieten gleichzeitig eine verbesserte Lesbarkeit, Typprüfung und Anpassbarkeit. Unabhängig davon, ob Sie mit einfachen Werttypen oder komplexen Datensatzstrukturen arbeiten, können benannte Tupel die Effizienz und Klarheit Ihres Codes verbessern.
Das obige ist der detaillierte Inhalt vonWas sind Pythons benannte Tupel und wie vergleichen sie sich mit regulären Tupeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!