Heim  >  Artikel  >  Backend-Entwicklung  >  Wie greife ich mit Objektstil-Syntax auf verschachtelte Python-Wörterbücher zu?

Wie greife ich mit Objektstil-Syntax auf verschachtelte Python-Wörterbücher zu?

Linda Hamilton
Linda HamiltonOriginal
2024-11-12 05:49:021012Durchsuche

How to Access Nested Python Dictionaries with Object-Style Syntax?

So greifen Sie auf verschachtelte Python-Wörterbücher mit Objektstil-Syntax zu

Bei der Arbeit mit verschachtelten Wörterbüchern in Python kann der Zugriff auf Daten umständlich sein mit Schlüsseln. Hier entsteht die Notwendigkeit einer Syntax im Objektstil.

Ab Python 2.6 bietet die Namedtuple-Datenstruktur eine Lösung. Namedtuples ermöglichen das Erstellen von Tupeln mit benannten Attributen und erleichtern so den Zugriff auf Daten mithilfe der Attributsyntax. Zum Beispiel:

from collections import namedtuple

MyStruct = namedtuple('MyStruct', 'a b d')
s = MyStruct(a=1, b={'c': 2}, d=['hi'])

print(s.a)   # Output: 1
print(s.b)   # Output: {'c': 2}
print(s.c)   # Error: AttributeError: 'MyStruct' has no attribute 'c' since it's not defined in the tuple
print(s.d)   # Output: ['hi']

Ein alternativer Ansatz kann mithilfe einer benutzerdefinierten Klasse implementiert werden:

class Struct:
    def __init__(self, **entries):
        self.__dict__.update(entries)

args = {'a': 1, 'b': 2}
s = Struct(**args)

print(s.a)   # Output: 1
print(s.b)   # Output: 2

Sowohl benannte Tupel als auch benutzerdefinierte Klassen bieten eine elegante Lösung für den Zugriff auf verschachtelte Wörterbücher in Python mithilfe von Objekt- Stilsyntax. Berücksichtigen Sie die geeignete Datenstruktur für Ihren spezifischen Anwendungsfall.

Das obige ist der detaillierte Inhalt vonWie greife ich mit Objektstil-Syntax auf verschachtelte Python-Wörterbücher zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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