Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich in Python ein benutzerdefiniertes Wörterbuch mit transformierten Schlüsseln erstellen?

Wie kann ich in Python ein benutzerdefiniertes Wörterbuch mit transformierten Schlüsseln erstellen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-18 09:43:02147Durchsuche

How Can I Create a Custom Dictionary in Python with Transformed Keys?

Ein „perfektes“ Diktat erstellen

In Python kann das Erstellen einer benutzerdefinierten Klasse, die sich genauso verhält wie ein Wörterbuch, eine komplexe Aufgabe sein. Hier erfahren Sie, wie Sie dies mit abstrakten Basisklassen (ABCs) erreichen.

Implementieren des MutableMapping-ABC

Das Modul „collections.abc“ stellt ABCs für verschiedene Datenstrukturen bereit, einschließlich MutableMapping. Durch die Implementierung von MutableMapping können wir ein Objekt mit derselben Schnittstelle wie ein Diktat erstellen. Hier ist eine minimalistische Implementierung:

from collections.abc import MutableMapping

class TransformedDict(MutableMapping):

    def __init__(self, *args, **kwargs):
        self.store = dict()
        self.update(dict(*args, **kwargs))

    def __getitem__(self, key):
        return self.store[self._keytransform(key)]

    def __setitem__(self, key, value):
        self.store[self._keytransform(key)] = value

    def __delitem__(self, key):
        del self.store[self._keytransform(key)]

    def __iter__(self):
        return iter(self.store)

    def __len__(self):
        return len(self.store)

    def _keytransform(self, key):
        return key

Anpassen der Schlüsseltransformation

Durch Überschreiben der _keytransform-Methode können wir beliebige Transformationen auf Schlüssel anwenden. Um beispielsweise Kleinbuchstaben zu erzwingen:

class MyTransformedDict(TransformedDict):

    def _keytransform(self, key):
        return key.lower()

Vorteile von ABCs

Die Implementierung von ABCs bietet mehrere Vorteile:

  • Stellt die Einhaltung sicher die dict-Schnittstelle.
  • Stellt wichtige Methoden wie __contains__, get() und setdefault() kostenlos zur Verfügung.
  • Vereinfacht das Beizen und Entbeizen.

Zusammenfassend: Das Implementieren von MutableMapping und das Überschreiben von _keytransform bietet eine präzise und effektive Möglichkeit, ein benutzerdefiniertes Diktat mit maßgeschneiderter Schlüsselbehandlung zu erstellen und gleichzeitig die Funktionalität eines Standarddikts beizubehalten.

Das obige ist der detaillierte Inhalt vonWie kann ich in Python ein benutzerdefiniertes Wörterbuch mit transformierten Schlüsseln erstellen?. 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