Wie kann ich in Python ein geordnetes Standardwörterbuch erstellen?

Linda Hamilton
Freigeben: 2024-10-28 08:52:01
Original
355 Leute haben es durchsucht

How can I create an ordered default dictionary in Python?

Implementieren eines geordneten Standardwörterbuchs

Ein geordnetes Standardwörterbuch kombiniert die Funktionalität von OrderedDict und defaultdict aus dem Collections-Modul in Python. Um dies zu erreichen, können Sie die Klasse DefaultOrderedDict verwenden, wie unten gezeigt:

<code class="python">from collections import OrderedDict, Callable

class DefaultOrderedDict(OrderedDict):
    def __init__(self, default_factory=None, *a, **kw):
        if (default_factory is not None and
           not isinstance(default_factory, Callable)):
            raise TypeError('first argument must be callable')
        OrderedDict.__init__(self, *a, **kw)
        self.default_factory = default_factory

    def __getitem__(self, key):
        try:
            return OrderedDict.__getitem__(self, key)
        except KeyError:
            return self.__missing__(key)

    def __missing__(self, key):
        if self.default_factory is None:
            raise KeyError(key)
        self[key] = value = self.default_factory()
        return value

    # ... (remaining implementation omitted for brevity)</code>
Nach dem Login kopieren

Diese Klasse bietet die Vorteile von OrderedDict, das die Reihenfolge von Schlüssel-Wert-Paaren beibehält, und von defaultdict, das einen Standard bereitstellt Wert für nicht vorhandene Schlüssel. Es ermöglicht Ihnen den Zugriff auf und die Änderung von Elementen unter Beibehaltung ihrer ursprünglichen Reihenfolge.

Das obige ist der detaillierte Inhalt vonWie kann ich in Python ein geordnetes Standardwörterbuch 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!