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

Linda Hamilton
Freigeben: 2024-11-18 09:43:02
Original
144 Leute haben es durchsucht

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
Nach dem Login kopieren

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()
Nach dem Login kopieren

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!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage