Botte

Bidirektionale (Eins-zu-Eins) Mapping-Datenstruktur
Jetzt downloaden

Botte Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • MIT/X Consortium Lic...
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Josh Bronson
  • Website des Verlags:
  • http://pypi.python.org/pypi/Pythello

Botte Stichworte


Botte Beschreibung

Bidirektionale (Eins-zu-Eins) -Datenstruktur BIDICT ist ein Python-Paket, das eine bidirektionale Mapping-Datenstruktur und verwandte Versorgungsunternehmen (Nameddach, invertiert) bietet, um natürlich ein-zu-Eins-Beziehungen in Python vorzunehmen. Um die Lernkurve niedrig zu halten, führt dies keine neuen Funktionen an die Dict-API, mit der Sie bereits vertraut sind. Es schuldet seiner Einfachheit gegenüber Pythons Slice-Syntax, der eine praktische und natürliche Möglichkeit bietet, die umgekehrte Mapping in einem Bidict auszudrücken: >>> Ehemänner2Wives = Bidict ({'John': 'Jackie'}) >>> Ehemänner2Wives # Das Forward-Mapping ist genauso wie mit Dict'Jackie '>>> Ehemännchen2Wives # Verwenden Sie Slice für das inverse Mapping'John'Syou können den unary Inverse-Operator ~ auf einem BILD, um das umgekehrte Mapping zu erhalten : >>> ~ Ehemannes2Wivesdach ({'Jackie': 'John'}) Motivation und mehr integrierte Dikte von mehreren Beispielespitztöne lassen uns eindeutige Schlüssel mit willkürlichen Werten verknüpfen. Da die Tasten hasbar sein müssen, können Werte in konstanter Zeit mit dem Schlüssel aufgenommen werden. Verschiedene Tasten können auf denselben Wert einordnen, aber ein einzelner Schlüssel kann nicht zwei verschiedene Werte zuordnen. Zum Beispiel ist {-1: 1, 0: 0, 1: 1} ein DICT mit drei eindeutigen Tasten und zwei eindeutigen Werten, da die Tasten -1 und 1 beide Karte auf 1. Wenn Sie versuchen, seine inverse {1 zu schreiben : -1, 0: 0, 1: 1}, der herauskommende Dict, der auskommt, hat nur zwei Zuordnungen, eines für Key 1 und eine für Taste 0; Da Key 1 nicht an beide von -1 und 1 zuordnen darf, wird eines dieser Zuordnungen verworfen. (Annahme von Monogamie). Dies wird als eins zu eins (oder injektiv) Mapping (siehe http://en.wikipedia.org/wiki/injective_mapping). In diesem Fall können wir sicher sein, dass die inverse Zuordnung die gleiche Anzahl von Elementen wie die Vorwärtszuordnungen und darüber hinaus, wenn der Schlüssel k auf Value V in der Vorwärts-Mapping-Value V-Karten in die Taste K in Inverse ist. Es wäre nützlich, dann in der Lage zu sein, in der Lage zu sein, in konstanter Zeit mit dem Wert nach oben nachschlagen zu können, zusätzlich, um die Werte mit der Taste nachschlagen zu können. Mit der zusätzlichen Einschränkung, die Werte als auch Schlüssel erhielt Es wurde bereits von regulären Diktionen verwendet. Betrachten Sie das folgende One-to-One-Mapping: >>> H2W = Bidict ({'Bill': 'Hillary', 'Barack': 'Michelle'}) Um eine Frau von Ehemann zu suchen, verwenden Sie die bekannte Teilnahme-Syntax wie mit Ein Dict: >>> H2W 'Hillary'or, analog zu Analogie zum Schneiden von Analogie, können Sie optional einen nachlaufenden Dickdarm bieten, um hervorzubleiben, dass Sie über ein Forward-Mapping sprechen: >>> H2W 'Hillary'and jetzt kannst du erraten, wie man das umgekehrte Mapping buchstabiert (dh um einen Ehemann von Frau nachschlagen): >>> H2W ' Bill'The Slice Syntax arbeitet zum Setzen und Löschen von Elementen in Jede Richtung So erstellen Sie ein bidirektionales Mapping mit benutzerdefinierten Namen für die Vorwärts- und Inversen-Mappings, die über Attribute erreichbar sind.Ein real-World-Beispiel finden Sie im HTMLENTITYDEFS-Modul, das einen Namen2CodePoint-Diktat und einen inversen codepoint2name-Diktat unterhält. Dies könnte stattdessen mit einem einzelnen Angebot modelliert werden: >>> htmlentities = nameddidict ('htmlentities', 'names', 'codepoints') >>> Entitäten = HTMLentities ({'LT': 60, 'GT': 62, ' AMP ': 38}) # usw. >>> Entitäten.names 60 >>> Entitäten API ist ein Superset der Dict-API abzüglich der MASSY-Methode, die im Kontext einer Injektionskartierung nicht sinnvoll ist. BIDICAKTION Implementiert die Mutablempfing-Schnittstelle. Dieses Modul liefert auch einen invertierten Iterator im Sinne der integrierten Umkehrung. Geben Sie eine Zuordnung ein, um das inverse Zuordnungen zu erhalten, ein iteraner von Paaren, um die Paare 'Invers, oder ein Objekt, das eine __invertierte __-Methode implementiert. Sehen Sie sich die invertierte Klasse für Beispiele an Elemente in einer Sequenz gegenüber dem Invertieren der (k, v) Paare in einem Mapping). Anforderungen: · Python


Botte Zugehörige Software