Python Dict-Bereich

Python verwendet ein Diktat und ich frage mich ein wenig, ob der Schlüssel kein String ist, aber das Wörterbuch ist ein bisschen anders, aber ich denke, es ist überwältigend besser als Hash. In Bezug auf die Entsprechung zwischen der Wertgruppe und dem case-Element der Schlüsselgruppe erscheint es richtig, sie mathematisch als Funktion zu bezeichnen, aber sie führt auch zu Verwirrung. https://twitter.com/shibu_jp/status/471445247973527553

Nun, ich denke, dass die Karte die sicherste ist. https://twitter.com/shibu_jp/status/471445639964815360

Ein Python-Wörterbuch besteht aus einer Reihe von Schlüssel- und Wertepaaren, z. B. "{" a ": 10," b ": 20}", aber dieses Diktat ist natürlich eine Zuordnung (da es in diesem Beispiel nicht für den gesamten String definiert ist. Es ist keine Funktion). Ich fragte mich jedoch, ob ich dieses Shooting irgendwie nennen könnte, also dachte ich auf verschiedene Arten darüber nach und fasste es zusammen.

Da ich ohne Erlaubnis darüber nachgedacht habe, kann das Folgende schwerwiegende Fehler enthalten. Wenn Sie einen finden, weisen Sie bitte in den Kommentaren darauf hin.

Diktierbereich

Im Folgenden werden wir eine Reihe von Instanzen der in Python integrierten Klassen betrachten, wenn wir sie als Typen bezeichnen, und vorerst keine anderen Instanzen (z. B. selbst erstellte Klassen) berücksichtigen. Die Schlüssel- und Werttypen des Wörterbuchs sind festgelegt. Das heißt, der Satz von Schlüssel und Wert ist der Standard-Python-Typ (Bool, Int, Str, [Int], ...), und es gibt nur einen Typ. .. Wörterbücher mit dem Schlüssel vom Typ $ A $ und dem Wert vom Typ $ B $ werden natürlich mit diesen direkten Produktteilmengen gleichgesetzt, und Wörterbücher können auch als Teilgraphen der Zuordnung von $ A \ zu B $ betrachtet werden. Gibt es.

Zu diesem Zeitpunkt wird das Folgende als ** Diktierbereich ** bezeichnet.

Es hat natürlich eine Kugelstruktur. Für jedes Objekt $ X $ ist $ 1_X = [(x, x); x \ in X] $ (dies ist ein Diagramm der konstanten Zuordnung von $ X \ zu X $ als Zuordnung. Is) ist ein ständiges Feuer.

Natur

Sei $ A, B $ der Typ und $ f, g: A \ rechteckige Pfeile B $ ist die parallele Aufnahme. Zu diesem Zeitpunkt ist Folgendes klar.

--terminal object: Wenn ein Terminalobjekt vorhanden ist, handelt es sich um einen Typ, der kein Element wie "N = {}" enthält. Zu diesem Zeitpunkt wird ein eindeutiger Schuss "{}" von einem beliebigen Typ erweitert. --product: $ A \ times B $ ist ein direktes Produkt als Menge. In Python wird dies als Tupel von A und B definiert. $ p_A = [((a, b), a); a \ in A, b \ in B]: A \ mal B \ bis A $ ist eine Projektion, und für jedes Ziel- und Projektionspaar $ Z, z_A, z_B $ ist die von UMP abgeleitete Projektion $ h $ $ h = [(z, (a, b)); \ existiert z. (Z, a) \ in z_A, (z, b) \ in z_B \ Keil \ existiert z. (Z, a) \ in z_A, b \ in B \ wedge \ existiert z. (Z, b) \ in z_B, a \ in A] $. (Dieses $ h $ ist die Summe der Menge bei $ z_A $ und der Menge bei $ z_B $. Wenn es jedoch Paare für das gemeinsame $ z $ gibt, werden diese Paare entsprechend korrespondiert, und wenn sie nicht existieren, werden sie durch geeignetes Abrufen von $ A und B $ erstellt. Ist eine Aufnahme, die das Diagramm konvertierbar macht.) --Equalizer $ (E, e: E \ bis A) $ von $ f, g $ ist $ E = [a \ in A; \ existiert v: (a, v) \ in f, (a, v) \ in g] $, $ e = [(a, a); a \ in E] $.

Das Produkt und der Equalizer können auf die gleiche Weise wie das Set konfiguriert werden. Hier haben wir jedoch die Wörter des Wörterbuchs verwendet, um den Schuss zu beschreiben. Außerdem wird das Vorhandensein des Pullbacks durch Folgendes garantiert.

Fakt: Wenn die Kugel $ \ mathscr {C} $ ein Terminalobjekt, ein Binärprodukt und einen Equalizer hat, hat sie eine endliche Grenze.

Daher wurde festgestellt, dass die Diktatkugel eine endliche Grenze hat.

--exponential: $ Z ^ X $ ist die gesamte Projektion von $ X $ nach $ Z $. Dann ist die Auswertung ein Wörterbuch wie das folgende: $ e = [((f, x), z); \ existiert (x, z) \ in f] $. Das heißt, für $ f $ und $ x $ ist $ f (x) $, wenn $ f (x) $ existiert, $ (f, x) \ mapsto f (x) $. Der Auswertungspfeil ist eine Sammlung all dieser Entsprechungen. Zu diesem Zeitpunkt ist für $ f: Y \ mal X \ bis Z $ der von UMP abgeleitete Schuss $ h $ $ h = [ (y, [(x, z)]); ((y, x), z) \ in f] $.

Daher ist der Dict-Bereich CCC (Cartesian Closed Category).

Kommentar

Es war interessant, es auf die gleiche Weise wie $ \ mathbf {Set} $ konfigurieren zu können, aber es gab viele Bilder, die ich nicht sofort verstehen konnte, ohne zu bestätigen, dass sie universell existierten und konvertiert werden konnten. Ich frage mich, ob dieser Bereich (der gleiche Bereichstyp) keinen Namen hat. Ich mache es auch nicht, weil es lästig ist, aber ich habe das Gefühl, dass ich zeigen kann, dass es elementar ist, pos. Nun, es ist eine Übung (angemessen).

Zusammenfassung: Nennen Sie Pythons Diktat nicht einen Schuss, weil es verwirrender ist. Zumindest ist es keine Karte.

Recommended Posts

Python Dict-Bereich
Python
Verwendung von __dict__ in Python
Python Basic Dikt Sortierreihenfolge
Verwenden Sie in Python ein Diktat mit Listenschlüssel
Python Dict Object Memorandum (mysteriöses Dokument)
Über Python-Diktat und sortierte Funktionen
Python / Machen Sie ein Diktat aus einer Liste.
Attributzugriff auf Python dict zulassen
Kafka Python
Python-Grundlagen ⑤
Python-Zusammenfassung
Eingebaute Python
Python-Einschlussnotation
Python studieren
Python 2.7 Countdown
Python-Memorandum
Python> dir ({})> dict Gibt die Attribute eines Objekts zurück
Python FlowFishMaster
Python-Dienst
Python-Tipps
Python-Memo
Python-Einschlussnotation
Python Singleton
Python> leer XXX (XXX: diktieren, auflisten, tupeln, setzen)> {} / [] / () / set ()
Python-Grundlagen ④
Python-Memorandum 2
Python-Inkrement
atCoder 173 Python
[Python] -Funktion
Python-Installation
Python installieren 3.4.3.
Versuchen Sie Python
Python-Memo
Python 3.9 Dict Merge (`|`) scheint nützlich zu sein
Python iterativ
Python-Algorithmus
Python2 + word2vec
[Python] -Variablen
Python-Funktionen
Python sys.intern ()
Python-Tutorial
Python-Fraktion
Python Underbar Das ist was
Python-Zusammenfassung
Starten Sie Python
[Python] Sortieren
Hinweis: Python
Python-Grundlagen ③
Python-Protokoll ausgeben
Python-Grundlagen
Python-Memo
Python-Memorandum
Python #sort
Ufo-> Python
Python nslookup
Python lernen
[Rpmbuild] Python 3.7.3.