Was ist ein „eingefrorenes Wörterbuch“?
Python fehlt ein explizites Konzept eines „eingefrorenen Wörterbuchs“. Im Folgenden finden Sie jedoch einige Überlegungen zum Konzept:
Vorgeschlagene Implementierung
Trotz des Fehlens einer integrierten Implementierung kann man eine Wrapper-Klasse erstellen, um eine eingefrorene Klasse nachzuahmen Wörterbuch:
<code class="python">import collections class FrozenDict(collections.Mapping): ...</code>
Diese Klasse stellt die notwendigen Methoden und Eigenschaften bereit, um wie ein Wörterbuch zu funktionieren, verbietet jedoch Änderungen.
Hashing
Ein eingefrorenes Das Wörterbuch sollte Hashing unterstützen, sodass es als Schlüssel in anderen Wörterbüchern oder Sätzen verwendet werden kann. Die obige Klassenimplementierung enthält eine benutzerdefinierte Hashing-Funktion, um diese Funktionalität bereitzustellen.
Verwendungen
Ein eingefrorenes Wörterbuch ist in Situationen nützlich, in denen das Auswendiglernen erforderlich ist. Durch das Einfrieren des Wörterbuchs kann es als Hash-Schlüssel zum Speichern der Ergebnisse einer Funktion mit beliebigen Argumenten verwendet werden.
Vergleich mit Tupeln
Eingefrorene Wörterbücher unterscheiden sich von Tupel (unveränderliche Listen), da sie Schlüsselwertoperationen unterstützen. Tupel bieten eine Schlüsselindizierung, aber es fehlt ihnen die Möglichkeit, Werte festzulegen oder abzurufen.
Hinweis
Python enthält jetzt einen integrierten eingefrorenen Diktattyp, der an Ort und Stelle verwendet werden kann der oben beschriebenen benutzerdefinierten Implementierung. Es wurde in PEP-603 eingeführt und bietet verbesserte Leistung und Korrektheit.
Das obige ist der detaillierte Inhalt vonWas ist ein „Frozen Dictionary' in Python und wie wird es implementiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!