Heim > Backend-Entwicklung > Python-Tutorial > Verbessern Sie die Klarheit des Codes mit benannten Python-Tupeln

Verbessern Sie die Klarheit des Codes mit benannten Python-Tupeln

尊渡假赌尊渡假赌尊渡假赌
Freigeben: 2024-01-02 10:35:57
nach vorne
2448 Leute haben es durchsucht

Pythons Sammlungsmodul verfügt über eine Funktion namens „Namedtuple“. Ein „Namedtuple“ ist ein Tupel mit benannten Elementen, um den Code ausdrucksvoller zu machen. Genau wie ein Wörterbuch in Python ermöglicht uns ein „Namedtuple“ den Zugriff auf Elemente mithilfe der Mitglieder des Tupels anstelle des Index.

Verbessern Sie die Klarheit des Codes mit benannten Python-Tupeln

Verbessern Sie die Codeklarheit mit Python-benannten Tupeln

Erfahren Sie, wie Sie die Speichernutzung erstellen, destrukturieren und optimieren, um saubereren, besser lesbaren Code zu erhalten. Entdecken Sie Beispiele und Best Practices aus der Praxis.

Pythons Sammlungsmodul verfügt über eine Funktion namens „Namedtuple“. Ein „Namedtuple“ ist ein Tupel mit benannten Elementen, um den Code ausdrucksvoller zu machen. Genau wie Wörterbücher in Python ermöglicht uns „Namedtuple“ den Zugriff auf Elemente mithilfe der Mitglieder des Tupels anstelle des Index.

Erstellen eines benannten Tupels

Um ein benanntes Tupel zu erstellen, müssen wir die Funktion „namedtuple“ aus dem Collections-Modul verwenden.

from collections import namedtuple

# Define a employee tuple that has fields id, name and location.
Employee = namedtuple ('Employee', 'id name location')

# Create instances of Employee
employee1 = Employee (id=10, name='John Doe', location='Atlanta')
employee2 = Employee (id=11, name='Mick', location='Dallas')
Nach dem Login kopieren

Zugriff auf Elemente von Namedtuple

„Namedtuple“ bietet einen dualen Mechanismus für den Elementzugriff. Erstens kann auf Elemente über Attributnamen zugegriffen werden, und der zweite Mechanismus verwendet die traditionelle numerische Indizierung.

print(f"{employee1.name} - {employee1.location}") # John Doe - Atlanta
print(f"{employee2.name} - {employee2.location}") # Mick – Dallas
Nach dem Login kopieren

Auf Elemente kann auch über numerische Indizes zugegriffen werden.

print(f"{employee1[1]} - {employee1[2]}") # John Doe - Atlanta
print(f"{employee2[1]} - {employee2[2]}") # Mick – Dallas
Nach dem Login kopieren

Unveränderlichkeit

Unveränderlichkeit ist eine grundlegende Eigenschaft von „Namedtuples“, die von regulären Tupeln geerbt wird. Dies bedeutet, dass der Wert eines Felds, sobald er während der Erstellung festgelegt wurde, nicht mehr geändert werden kann.

try:
    employee1.name = 'David'
except AttributeError as e:
    print(f"AttributeError: {e}") # AttributeError: can't set attribute
Nach dem Login kopieren

Methoden

„Namedtuple“ bietet nicht nur eine saubere und lesbare Möglichkeit, Daten zu strukturieren, sondern stellt auch einige nützliche Methoden bereit, die die Funktionalität von „Namedtuple“ verbessern.

a) _asdict(): Die Methode _asdict() gibt benannte Tupel in Wörterbuchform zurück und bietet so eine bequeme Möglichkeit, „Namedtuples“ in ein Format zu konvertieren, das mit anderen Datenstrukturen kompatibel ist.

employee1._asdict() # {'id': 10, 'name': 'John Doe', 'location': 'Atlanta'}
Nach dem Login kopieren

b) _replace(): Die Methode _replace() erstellt eine neue Instanz von „Namedtuple“, wobei die angegebenen Felder durch neue Werte ersetzt werden. Dieser Ansatz ist entscheidend, um die Unveränderlichkeit aufrechtzuerhalten und gleichzeitig Änderungen zu ermöglichen.

employee1_modified = employee1._replace(location='DFW')
employee1_modified # Employee(id=10, name='John Doe', location='DFW')
Nach dem Login kopieren

c) _make(): Die Methode _make(iterable) erstellt eine neue Instanz von „namedtuple“ aus einem iterierbaren Objekt. Beispielsweise können wir mit der Methode _make() ein Namedtuple aus einer Liste erstellen.

employee_list = [21, 'Bob','Gallup']
Employee._make(employee_list) # Employee(id=21, name='Bob', location='Gallup')
Nach dem Login kopieren

Entpacken von Namedtuple

Durch den Entpackvorgang ermöglichen Ihnen Pythons „Namedtuples“, ihre Werte einzelnen Variablen in einer einzigen, prägnanten Anweisung zuzuweisen.

id, name, location = employee1
print(f"id: {id}, name: {name}, location:{location}")
Nach dem Login kopieren

Konvertieren Sie „Namedtuples“ in verschiedene Datenstrukturen

Sie können den list()-Konstruktor verwenden, um benannte Tuples in eine Liste zu konvertieren. Hier ist ein Beispiel:

list(employee1) # [10, 'John Doe', 'Atlanta']
Nach dem Login kopieren

Sie können ein benanntes Tupel mit der Methode „_asdict()“ in ein Wörterbuch konvertieren, die ein OrderedDict zurückgibt, das Sie in ein reguläres Wörterbuch konvertieren können. Hier ist ein Beispiel:

dict(employee1._asdict()) # {'id': 10, 'name': 'John Doe', 'location': 'Atlanta'}
Nach dem Login kopieren

Vorteile der Verwendung von „Namedtuple“

Lesbarkeit: „Namedtuples“ machen den Code lesbarer, indem sie Elementen aussagekräftige Namen geben, wodurch der Aufwand eines indexbasierten Zugriffs entfällt.

Mutation: Wie normale Tupel sind „Namedtuples“ unveränderlich. Sobald es erstellt wurde, kann sein Wert nicht mehr geändert werden.

Speichereffizienz: „Namedtuples“ sind speichereffizient und nehmen weniger Platz ein als entsprechende Klassen. Es ist wichtig zu beachten, dass die mit Namedtuples erzielte Speichereffizienz häufiger in Szenarien mit einer großen Anzahl von Instanzen oder bei der Arbeit mit großen Datensätzen auftritt.

Leichte Datenstruktur: Ideal zum Erstellen einfacher Klassen ohne benutzerdefinierte Methoden.

Datenspeicherung: Praktisch zum Speichern strukturierter Daten, insbesondere wenn keine vollständigen Kurse erforderlich sind.

API- und Datenbankdatensätze: Wird verwendet, um von der Datenbank zurückgegebene Datensätze oder von der API empfangene Daten darzustellen.

„Namedtuple“ in Python ist ideal für Szenarien, die einfache, unveränderliche Daten Strukturen mit benannten Feldern erfordern, wie z. B.

Konfigurationseinstellungen: Verwenden Sie „Namedtuple“, um Konfigurationseinstellungen mit benannten Feldern für Klarheit und Benutzerfreundlichkeit darzustellen.

Datenbankdatensatz: „Namedtuple“ kann einen Datenbankdatensatz darstellen und so klarstellen, welches Feld welcher Spalte in der Tabelle entspricht.

Befehlszeilenanalyse: Verwenden Sie „Namedtuple“, um analysierte Befehlszeilenparameter zu speichern und so eine klare Struktur für Eingabeparameter bereitzustellen.

Benannte Konstanten: „Namedtuple“ kann zur Darstellung benannter Konstanten im Code verwendet werden und bietet so eine klare und lesbare Möglichkeit, konstante Werte zu definieren.

„Namedtuples“ zeichnen sich in diesen Szenarien dadurch aus, dass sie Klarheit, Lesbarkeit und Unveränderlichkeit bieten, was sie zu einem wertvollen Werkzeug für prägnant strukturierte Daten macht.

Das obige ist der detaillierte Inhalt vonVerbessern Sie die Klarheit des Codes mit benannten Python-Tupeln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:dzone.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage