Benanntes Tupel in Python
- Was ist ein benanntes Tupel in Python?
- Unterschied zwischen einfachem und benanntem Tupel in Python
- Wann Benanntes Tupel anstelle von Einfachem Tupel in Python verwendet werden sollte
- So verwenden Sie benannte Tupel in Python
Dieser Artikel erklärt ein benanntes Tupel, wann und wie es verwendet wird, und den Unterschied zwischen normalen und benannten Tupeln in Python.
Was ist ein benanntes Tupel in Python?
Ein benanntes Tupel ist eine spezielle Art von Tupel, das alle Funktionen eines Tupels hat. Benannte Tupel wurden in Python 2.6 eingeführt. Genau wie ein Dictionary enthält ein benanntes Tupel ein Schlüssel-Wert-Paar.
Auf einen Wert kann sowohl über seinen Schlüssel als auch über seinen Index zugegriffen werden. Es ähnelt einer Struktur in der C-Sprache.
Unterschied zwischen einfachem und benanntem Tupel in Python
Benanntes Tupel
ist die Objektdarstellung eines einfachen Tupels. Es ist eine Unterklasse von einfachen Tupeln mit benannten Variablen, die programmgesteuert unter Verwendung einer Factory-Funktion erstellt werden.
Wir können auf die Elemente des benannten Tupels zugreifen, indem wir den Punktoperator mit der Referenzvariablen des benannten Tupels und den Index des Elements mit der Referenzvariablen verwenden. In einem einfachen Tupel können wir nur den Index des Elements mit der Referenzvariablen verwenden, um darauf zuzugreifen.
Wann Benanntes Tupel anstelle von Einfachem Tupel in Python verwendet werden sollte
Wir verwenden benannte Tupel anstelle von einfachen Tupeln, wenn unser Code sauber, verständlich und pythonischer aussehen soll.
Zum Beispiel sieht ein person.age
im Fall eines Wörterbuchs sauberer aus als ein person['age']
. Und ein person.age
sieht im Fall des einfachen Tupels auch sauberer aus als ein person[1]
.
So verwenden Sie benannte Tupel in Python
Um ein benanntes Tupel zu generieren, importieren wir zuerst namedtuple()
, eine Fabrikfunktion innerhalb des Sammlungsmoduls. Die Fabrikfunktion ist eine Funktion, die zum Herstellen einer Klasse verschiedener Prototypen verwendet wird.
Mit dieser Factory-Funktion spezifizieren wir den Namen und die Attribute der Klasse. Die allgemeine Syntax ist also unten.
Class_Name = namedtuple('Class_Name', ['field_1', 'field_2', ....., 'field_n'])
Dann können wir die Klasse instanziieren. Das Instanziieren der Klasse erstellt ein Objekt und weist den entsprechenden Feldern Werte zu.
Die allgemeine Syntax ist also unten.
Ref_Variable_Name = Class_Name('Value_1', 'Value_2', ....., 'Value_n')
Wir können mit der Punktnotation auf den Wert eines bestimmten Felds zugreifen. Die allgemeine Syntax ist also unten.
Ref_Variable_Name.field_name
Im folgenden vollständigen Beispielcode lautet der Name der Klasse Person
und ihre Attribute sind name
und age
. Dann erstellen wir eine Instanz, p1
, der Klasse Person
.
Nun ist diese Instanz p1
ein benanntes Tupel. Auf die Klassenvariablen haben wir in Objektnotation und über den Index mit der Referenzvariablen im Code zugegriffen.
Aber die Objektnotation ist klarer und verständlicher, was das Motiv hinter dem benannten Tupel ist.
Beispielcode:
# python 3.x
from collections import namedtuple
Person = namedtuple("Person", ["name", "age"])
p1 = Person("Jhon", "20")
print("Accessing values using index:")
print("Person Name:", p1[0])
print("Person Age:", p1[1])
print("Accessing Values using key:")
print("Person Name:", p1.name)
print("Person Age:", p1.age)
Ausgabe:
# python 3.x
Accessing values using index:
Person Name: Jhon
Person Age: 20
Accessing Values using key:
Person Name: Jhon
Person Age: 20
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn