Wörterbücher - Hands-on Python Tutorial für Python 3

1.12.1. Definition und Verwendung von Dictionaries¶

Im allgemeinen Sprachgebrauch ist ein Wörterbuch ist eine Sammlung von Worten mit ihren Definitionen abgestimmt. Bei einem Wort, können Sie seine Definition nachschlagen. Python hat, die über einen integrierten Wörterbuchtyp namens dict Sie verwenden können Wörterbücher mit beliebigen Definitionen für Zeichenketten zu erstellen. Es kann für die gemeinsame Nutzung, wie sie in einem einfachen Englisch-Spanisch-Wörterbuch verwendet werden.

Schauen Sie sich das Beispielprogramm spanish1.py und führen Sie es.

Zunächst wird ein leeres Wörterbuch wird mit dict () erstellt wurde. und es wird den beschreibenden Namen spanisch zugeordnet.

Um ein Wort der Definition zu verweisen, verwenden Sie die Wörterbuchnamen, folgen sie durch das Wort in eckigen Klammern. Diese Notation kann entweder auf der linken Seite einer Zuweisung verwendet werden, um eine Festlegung zu treffen (oder Remake), oder es kann (wie in den Druckfunktionen) in einem Ausdruck verwendet werden, wo seine frühere Definition abgerufen wird. Beispielsweise,

einen Eintrag in unserem spanischen Wörterbuch macht für ‚Hallo‘. mit Definition 'hola'.

ruft die Definition für ‚rot‘. Das ist ‚Rojo‘.

Da der Spanisch-Wörterbuch auf der obersten Ebene definiert ist, spanisch der Variablenname immer noch nach den Programmläufen definiert: Nach dem Ausführen des Programms verwendet in der Shell-spanisch die Übersetzungen einiger Worte, andere als ‚zwei‘ zu überprüfen und ‚rot‘.

das Wörterbuch zu schaffen, ist eine gut definierte und ganz andere Tätigkeit aus der Benutzung des Wörterbuchs am Ende des Codes, so können wir eine Funktion verwenden, um die Aufgabe der Erstellung des Wörterbuchs, wie im Beispielprogramm spanish2.py zu verkapseln. die das gleiche Ergebnis:

Dieser Code zeigt einige Dinge über Funktionen.

  • Erstens, wie ganze Dateien können Funktionen haben eine Docstring unmittelbar nach der Definition Überschrift. Es ist eine gute Idee, den Rückgabewert zu dokumentieren!
  • Das Wörterbuch, das erstellt wird zurückgegeben, aber die lokalen Variablennamen in der Funktion, spanisch. verloren geht, wenn die Funktion beendet.
  • Zu erinnern, das Wörterbuch zurück zur Haupt. es braucht einen Namen. Der Name muss nicht den Namen in createDictionary übereinstimmen. Der Name Wörterbuch ist beschreibend.

Wir könnten auch das Wörterbuch ausführlich mehr verwenden. Das Beispielprogramm spanish2a.py ist das gleiche wie oben, außer es die folgenden Hauptverfahren hat:

Probieren Sie es aus, und prüfen, ob es Sinn macht.

Python Wörterbücher sind tatsächlich allgemeiner als die gemeinsame Verwendung von Wörterbüchern. Sie müssen keine Worte und ihre String-Definitionen zuordnen. Sie können viele Arten von Objekten mit einem beliebigen Objekt verknüpfen. Die allgemeinere Python Terminologie für Wort und Definition ist die Schlüssel und Wert. Bei einer Taste können Sie den entsprechenden Wert nachzuschlagen. Die einzige Beschränkung des Schlüssel ist, dass es ein unveränderlicher Typ sein. Dies bedeutet, dass ein Wert vom Typ des Schlüssels kann nicht intern geändert werden, nachdem es zunächst erstellt wird. Strings und Zahlen sind unveränderlich. Ein Wörterbuch ist wandelbar. sein Wert kann intern geändert werden. (Sie können neue Definitionen, um es hinzuzufügen!) Wir werden sehen, mehr wandelbar und unveränderliche Typen später und die internen Abläufe von Datentypen erforschen.

1.12.1.1. Anzahl Wörterbuch Exercise¶

Schreibe eine winzige Python Programm numDict.py, die ein Wörterbuch, deren Schlüssel macht sind die ‚eins‘ Worten ‚zwei‘, ‚drei‘ und ‚vier‘, und deren entsprechende Werte sind die numerische Äquivalente, 1, 2, 3, und 4 (ints, nicht Strings). Fügen Sie Code, um das resultierende Wörterbuch zu testen, indem mehrere der Definitionen und Drucken der Ergebnisse verweisen.

1.12.2. Wörterbücher und String Formatting¶

Am Ende der Hauptfunktion in spanish2a.py aus dem letzten Abschnitt sind zwei Zeichenfolge aufgebaut und bedruckt. Die Ausdrücke für die beiden Strings sind eine Folge von Zeichenketten mit eingestreuten Werte aus einem Wörterbuch verknüpft. Es gibt eine viel sauberere, lesbare Weise diese Zeichenfolge zu erzeugen. Wir werden dies in mehreren Schritten entwickeln. Der erste String könnte konstruiert und gedruckt werden, wie folgt:

Es gibt einige neue Ideen hier. Wir verwenden eine alternative Form der Format-String und Format Methodenparameter von denen im String-Format Betrieb beschrieben.

Beachten Sie die Form der Zeichenfolge mit dem Namen NUMBER zugeordnet. Es hat die englischen Wörter für Zahlen in Klammern, wo wir die spanischen Definitionen ersetzt werden soll. (Dies ist anders als in String-Format Betrieb. Wo wir leere Klammern oder einen numerischen Index innerhalb hatten.)

Wie in String-Format Betrieb. In der zweiten Zeile verwendet Methode aufruft Syntax. Eine Anzeige der Syntax für Methoden:

gefolgt hat die gefolgt von einem Punkt Aufgabe durch das Verfahren Namen und weitere Parameter in Klammern.

In dem obigen Beispiel ist das Objekt der String genannt NUMBER. Das Verfahren ist Format benannt. Die Parameter sind in diesem Fall alle Keyword-Parameter. Sie haben bereits Stichwort Parameter September gesehen und in Druckfunktion Anrufen verwendet beenden. In dieser speziellen Anwendung werden die Keywords ausgewählt alle Wörter enthalten, die in Klammern in der NUMBER String eingeschlossen erscheinen.

Wenn die Zeichenfolge NUMBER das Format Verfahren, um es mit den gegebenen Parametern Schlüsselwort angewendet ist, wird eine neue Zeichenfolge mit Substitutionen in den Orten in geschweiften Klammern erstellt. Die Substitutionen sind nur die von den Keyword-Parameter angegebenen Werte. Daraus ergibt sich die gedruckte Ergebnis ist,

Graf in Spanisch: uno, dos, tres.

Nun gehen wir einen Schritt weiter: Die Keyword-Parameter, um die Keyword-Namen mit den Werten nach den Gleichheitszeichen in Verbindung bringen. Das Wörterbuch von spanish2a.py enthält genau die gleichen Assoziationen. Es gibt eine spezielle Notation ein solches Wörterbuch ermöglicht Schlüsselwort Parameter zu liefern. Wörterbuch Unter der Annahme, ist das spanische Wörterbuch von spanish2a.py. der Methodenaufruf

gibt die gleiche Zeichenfolge wie

Die spezielle Syntax ** vor dem Wörterbuch zeigt an, dass das Wörterbuch nicht als alleiniges tatsächliche Parameter behandelt werden soll. Stattdessen Schlüsselwort Argumente für alle Einträge im Wörterbuch erscheinen effektiv an seinem Platz.

Im Folgenden ist ein Ersatz für das Hauptverfahren in spanish2a.py. Das ganze arbeitetes Programm ist in Beispielprogramm spanish3.py:

In dieser Hauptfunktion wird die Zeichenfolge mit den Zahlen in Schritten konstruiert, wie oben erörtert. Der Druck der Saite mit den spanischen Farben ist prägnanter codiert. Es gibt nicht benannten Variablen für den Format-String oder den resultierenden formatierten String. Sie sind frei, entweder Codierungsansatz zu verwenden.

In der Regel verwendet diese Syntax für die String-Format Methode mit einem Wörterbuch, einen neuen formatierten String zurückzuschicken:

format .format (** aDictionary)

wo das Format-String enthält Wörterbuchschlüssel in Klammern, wo Sie die Wörterbuch-Werte ersetzt werden sollen. Die Wörterbuchschlüsselnamen müssen den Regeln für Recht Bezeichner folgen.

An dieser Stelle haben wir im Detail alles besprochen, die in den ersten Beispielprogramm, madlib.py gingen. in einem Beispielprogramm, erklärte. Dies ist sicherlich das umfangreichste Programm so weit.

Schauen Sie sich madlib.py wieder sehen, wie wir die meisten Ideen bisher verwendet haben. Wenn Sie mehr Beschreibung möchten, können Sie Abschnitt A Beispielprogramm anschaut, erklärten erneut (oder zum ersten Mal): Es soll jetzt viel mehr Sinn machen.

Wir werden als Grundlage für die weiteren wesentliche Änderungen in der Struktur in dem überarbeiteten Mad Lib-Programm verwenden madlib.py.

1.12.2.1. Mad Lib Exercise¶

Zur Bestätigung Ihrer besseren Verständnis der madlib.py. laden sie im Editor, benennen Sie es als myMadlib.py. und ändern Sie sie eine weniger lahme Geschichte zu haben. mit mehr und verschiedenen Einträgen im Wörterbuch. Stellen Sie sicher, addPick für jeden Schlüssel in der Format-String genannt. Testen Sie Ihre Version.

1.12.3. Wörterbücher und Python Variables¶

Wörterbücher sind für die Umsetzung der Python von zentraler Bedeutung. Jede variable Kennung wird mit einem bestimmten Wert zugeordnet ist. Diese Beziehungen gespeichert sind, in Wörterbücher in Python, und diese Wörterbücher sind für den Benutzer zugänglich: Sie können die Funktion aufrufen Einheimischen () verwenden, um ein Wörterbuch zurückzukehren alle aktuellen lokalen Variablen Namen als Schlüssel und alle ihre Werte wie die entsprechenden Wörterbuch Werte enthält. Das Wörterbuch kann mit dem String-Format Methode verwendet werden, so können Sie in einem Format-String und verwenden sie sehr leicht lokale Variablennamen einzubetten!

Zum Beispiel das Beispielprogramm laufen arithDict.py

Beachten Sie die Variablennamen in geschweiften Klammern in formatStr, und die Wörterbuch Referenz als Formatparameter verwendet wird ** Einheimische ().

Das Beispielprogramm hello_you4.py macht das Gleiche wie die früheren hello_you Versionen, aber mit einer Wörterbuch-Referenz:

1.12.3.1. Quotient String Wörterbuch Exercise¶

Erstellen quotientDict.py von quotientReturn.py in Quotient String Rückgabe Übung so zu modifizieren, dass die quotientString Funktion das Gleiche erreicht, aber das Format Methodenaufruf ändern Sie die Wörterbuch ** Einheimischen () als Parameter zu verwenden, und setzen lokale Variablennamen in den geschweiften Klammern . Wenn Sie aussagekräftige Namen für die Variablen verwenden, sollte das Format-String besonders einfach zu verstehen sein.

In Verbindung stehende Artikel