Wie Wörterbuch in python_1 zu tun

5.1. Mehr zu Lists¶

Die Liste Datentyp hat einige weitere Methoden. Hier sind alle Methoden von Listenobjekten:

Fügen Sie ein Element am Ende der Liste. Entspricht einem [len (a):] = [x].







Liste. erstrecken (iterable)

Erweitern Sie die Liste, indem Sie alle Elemente aus dem iterable anhängt. Entspricht einem [len (a):] = iterable.

Legen Sie ein Element an einer bestimmten Position. Das erste Argument ist der Index des Elements, vor dem eingefügt, so a.insert (0, x) Einsätze an der Vorderseite der Liste und a.insert (len (a), x) entspricht a.append ( x).

Entfernen Sie den ersten Eintrag aus der Liste, dessen Wert x. Es ist ein Fehler, wenn kein solches Element ist.

Entfernen Sie das Element an der angegebenen Position in der Liste, und gibt es zurück. Wenn kein Index angegeben, a.pop () entfernt und gibt das letzte Element in der Liste. (Die eckigen Klammern um die i in der Methodensignatur bezeichnen, dass der Parameter optional ist, nicht, dass Sie an dieser Position eckige Klammern geben sollen. Sie diese Notation sehen wird häufig in der Python Library Reference).

Entfernen Sie alle Elemente aus der Liste. Entspricht del a [:].

Rückkehr auf Null basierende Index in der Liste des ersten Elements, dessen Wert x. Löst ein Valueerror, wenn kein solches Element ist.

Die optionalen Argumente beginnen und enden, wie in der Scheibe Notation interpretiert und verwendet, um die Suche auf einen bestimmten Teilfolge der Liste zu begrenzen. Der zurückgegebene Index wird berechnet im Verhältnis zum Beginn der vollständigen Sequenz statt dem Startargument.

Gibt die Anzahl der Zeiten x in der Liste erscheint.

Liste. sort (key = Keine. Reverse = False)

Ordnen Sie die Elemente der Liste vorhanden (können die Argumente für Sortier Anpassung verwendet werden, siehe sortiert () für ihre Erklärung).

Kehren Sie die Elemente der Liste vorhanden.

Gibt eine flache Kopie der Liste. Entspricht einem [:].

Ein Beispiel, das die meisten der Liste Methoden verwendet:

Sie könnten, dass Methoden wie Insert bemerkt. entfernen oder zu sortieren, dass nur ändern müssen, um die Liste kein Rückgabewert gedruckt - kehren sie den Standard Keine. [1] Dies ist ein Konstruktionsprinzip für alle änderbaren Datenstrukturen in Python.

5.1.1. Verwenden von Lists als Stacks¶

Die Liste Methoden machen es sehr einfach, eine Liste als einen Stapel verwendet werden, wobei das letzte Element hinzugefügt ist das erste Element abgerufen ( „liest-in, first-out“). Um ein Element an die Spitze des Stapels hinzuzufügen, verwenden append (). Um ein Element aus der oben auf dem Stapel abzurufen, verwenden pop () ohne einen expliziten Index. Beispielsweise:

5.1.2. Verwenden von Lists als Queues¶

Es ist auch möglich, eine Liste als eine Warteschlange zu verwenden, wobei das erste zusätzliche Element das erste Element abgerufen ( „first-in, first-out“); jedoch sind Listen für diesen Zweck nicht effizient. Während Appends und Pop vom Ende der Liste schnell ist, von Anfang an einer Liste Einsätze oder Pops tun ist langsam (weil alle anderen Elemente, die durch eine zu verschieben haben).

Um eine Warteschlange, die Verwendung collections.deque zu implementieren, die schnell Appends und Knacken von beiden Enden zu haben, entworfen wurden. Beispielsweise:

5.1.3. Liste Comprehensions¶

Listenkomprehensionen eine knappe Weise Listen zu erstellen. Übliche Anwendungen sind neue Listen zu machen, wobei jedes Element ist das Ergebnis von einigen Operationen an jedes Mitglied eines anderen aufgebracht oder iterable oder eine Subsequenz jener Elemente zu erzeugen, die eine bestimmte Bedingung erfüllen.

Zum Beispiel nehmen wir eine Liste von Quadraten erstellen möchten, wie:

Beachten Sie, dass dies schafft (oder überschreibt) eine Variable x genannt, die noch vorhanden ist, nachdem die Schleife abgeschlossen ist. Wir können die Liste der Quadrate ohne irgendwelche Nebenwirkungen berechnen mit:

das ist prägnanter und lesbar.

Eine Liste Verständnis besteht aus Klammern einen Ausdruck durch einen für Klausel enthalten, gefolgt, dann null oder mehr für oder wenn Klauseln. Das Ergebnis wird eine neue Liste, die aus der Expression im Rahmen der für die Evaluierung und wenn Klauseln, die ihm folgen. Zum Beispiel verbindet diese listcomp die Elemente von zwei Listen, wenn sie nicht gleich sind:

und es ist äquivalent zu:

Beachten Sie, wie die Reihenfolge des für und wenn Aussagen ist das gleiche in beiden Schnipseln.

Wenn der Ausdruck ein Tupel ist (beispielsweise die (x, y) in dem vorhergehenden Beispiel), muß sie geklammert wird.

Listenkomprehensionen können komplexe Ausdrücke und verschachtelte Funktionen enthalten:

5.1.4. Verschachtelte Liste Comprehensions¶

Der anfängliche Ausdruck in einer Liste Verständnis kann jeder beliebige Ausdruck sein, einschließlich einer anderen Liste Verständnis.

Betrachten Sie das folgende Beispiel für eine 3x4-Matrix als eine Liste von Listen der Länge 3 implementiert 4:

Die folgende Liste Begreifen transponieren Zeilen und Spalten:







Wie wir im vorigen Abschnitt gesehen haben, wird die verschachtelte listcomp im Zusammenhang mit der es für das folgt ausgewertet, so dass dieses Beispiel entspricht:

die wiederum, ist die gleiche wie:

In der realen Welt, sollten Sie integrierte Funktionen, um komplexe Flussrechnung bevorzugen. Die zip () Funktion eine große Aufgabe für diesen Anwendungsfall tun würde:

Siehe Auspacken Argumentlisten für Details auf dem Sternchen in dieser Zeile.

5.2. Die del statement¶

Es gibt eine Möglichkeit, ein Element aus einer Liste seines Index anstelle seinem Wert gegeben zu entfernen: die del-Anweisung. Dies unterscheidet sich von dem pop () Methode, die einen Wert zurückgibt. Die del-Anweisung kann auch die gesamte Liste aus einer Liste oder löschen entfernen Scheiben verwendet werden (was wir auch taten früher durch Zuweisung einer leeren Liste der Scheibe). Beispielsweise:

del kann auch ganze Variablen verwendet werden, um zu löschen:

Referenzieren des Namens a ist ein Fehler, (zumindest bis ein anderer Wert zugewiesen wird). Wir werden später andere Verwendungen für del finden.

5.3. Tupeln und Sequences¶

Ein Tupel besteht aus einer Anzahl von Werten, die durch Kommata getrennt sind, zum Beispiel:

Ein besonderes Problem ist der Aufbau von Tupeln, die 0 oder 1 Einheiten: Die Syntax zusätzliche Macken hat diese aufzunehmen. Leere Tupel werden durch ein leeres Paar von Klammern aufgebaut ist; ein Tupel mit einem Element wird durch folgenden Wert ein Komma (es ist nicht ausreichend ist, um einen einzelnen Wert in Klammern zu umschließen). Hässlich, aber effektiv. Beispielsweise:

Die Aussage t = 12345, 54321, 'Hallo!' ist ein Beispiel für Tupels Verpackung. die Werte 12345 54321 und ‚Hallo!‘ werden in einem Tupel zusammengepackt. Der umgekehrte Vorgang ist auch möglich:

Dies nennt man, sinnigerweise, Sequenz Auspacken und arbeitet für jede Folge auf der rechten Seite. Sequenz auspacken erfordert, dass es so viele Variablen auf der linken Seite des Gleichheitszeichens ist, da es Elemente in der Sequenz. Beachten Sie, dass die Mehrfachzuordnung ist wirklich nur eine Kombination von Tupel Verpackung und Sequenz Auspacken.

5.4. Sets¶

Python enthält auch einen Datentyp für die Sätze. Ein Satz ist eine ungeordnete Sammlung ohne doppelte Elemente. Grundlegende Anwendungen sind Mitgliedschaft Prüfung und Beseitigung von doppelten Einträgen. Set-Objekte auch mathematische Operationen wie Vereinigung, Schnitt, Differenz und symmetrische Differenz unterstützen.

Geschweiften Klammern oder die set () Funktion kann verwendet werden, Sätze zu erstellen. Hinweis: eine leere Menge erstellen Sie haben Set () zu verwenden. nicht <> ; letztere erzeugt ein leeres Wörterbuch, eine Datenstruktur, die wir im nächsten Abschnitt besprechen.

Hier ist eine kurze Demonstration:

Ähnlich Comprehensions aufzulisten. Set Comprehensions werden ebenfalls unterstützt:

5.5. Dictionaries¶

Ein weiterer nützlicher Datentyp in Python gebaut ist das Wörterbuch (siehe Mapping-Typen - dict). Wörterbücher sind manchmal in anderen Sprachen als „assoziativer Speicher“ oder „assoziative Arrays“ gefunden. Im Gegensatz zu Sequenzen, die durch eine Reihe von Zahlen indiziert werden, werden Worte Schlüssel indexiert. die jeder unveränderlichen Typ sein kann; Strings und Zahlen können immer Schlüssel. Tupeln können als Schlüssel verwendet werden, wenn sie nur Zeichenfolgen enthalten, Zahlen oder Tupel; Wenn ein Tupel jedes veränderliches Objekt enthält entweder direkt oder indirekt, kann es nicht als ein Schlüssel verwendet werden. Sie können keine Listen als Schlüssel verwenden, da Listen können sich mit Hilfe der Indexzuweisungen, in Scheiben schneiden Zuweisungen oder Methoden wie append () und extend () geändert werden.

Am besten ist es ein Wörterbuch als ungeordnete Menge von Schlüssel zu denken: Wert-Paaren, mit der Forderung, dass die Schlüssel eindeutig sind (innerhalb eines Wörterbuch). Ein Paar Klammern erzeugt ein leeres Wörterbuch: <>. eine durch Kommata getrennte Liste von Schlüssel Plazierung: innerhalb der geschweiften Klammern Wertepaare addiert Anfangsschlüssel: Wertepaaren in das Wörterbuch; dies ist auch die Art und Weise Wörterbücher auf Ausgabe geschrieben werden.

Die wichtigsten Operationen sind auf einem Wörterbuch einen Wert mit einem gewissen Schlüssel zu speichern und um den Wert des gegebenen Schlüssel zu extrahieren. Es ist auch möglich, einen Schlüssel zu löschen: Wert-Paar mit del. Wenn Sie einen Schlüssel speichern verwenden, die bereits in Betrieb ist, wird der alte Wert mit diesem Schlüssel zugeordnet ist, vergessen. Es ist ein Fehler, einen Wert mit einem nicht vorhandenen Schlüssel zu extrahieren.

Darstellende Liste (d.keys ()) auf ein Wörterbuch gibt eine Liste aller verwendeten Schlüssel im Wörterbuch, in beliebiger Reihenfolge (wenn Sie es sortiert werden sollen, verwenden Sie einfach sortiert (d.keys ()) statt). [2] Um zu überprüfen, ob ein einzelner Schlüssel im Wörterbuch enthalten ist, verwenden Sie das im Schlüsselwort.

Hier ist ein kleines Beispiel ein Wörterbuch mit:

Die dict () Konstruktor baut Wörter direkt von Sequenzen von Schlüsselwertpaare:

Darüber hinaus können dict Comprehensions verwendet werden Wörterbücher aus beliebigen Schlüssel und Wertausdrücke zu erstellen:

Wenn die Tasten sind einfache Strings, ist es manchmal einfache Paare angeben Schlüsselwort Argumente:

5.6. Looping Techniques¶

Wenn durch Wörter Looping, der Schlüssel und entsprechende Wert können die Einzelteile () -Methode zur gleichen Zeit abgerufen werden.

Verwendung der Aufzählen () Funktion, wenn sie durch eine Sequenz Looping, kann der Positionsindex und entsprechender Wert gleichzeitig abgerufen werden.

Um Schleife über zwei oder mehr Sequenzen zur gleichen Zeit kann die Einträge mit dem Reißverschluss () -Funktion kombiniert werden.

Schleife über eine Sequenz in umgekehrter Richtung, gibt zuerst die Sequenz in einer Vorwärtsrichtung und ruft dann die umgekehrt () Funktion.

Schleife über eine Sequenz in sortierter Reihenfolge, verwenden Sie das sortiert () Funktion, die eine neue sortierten Liste gibt, während die Quelle unverändert bleibt.

Es ist verlockend, manchmal eine Liste zu ändern, während Sie über sie sind Looping; jedoch ist es oft einfacher und sicherer, anstatt eine neue Liste zu erstellen.

5.7. Mehr zu Conditions¶

Die Bedingungen in Zeit lang nicht benutzt und wenn Aussagen keine Operatoren enthalten, nicht nur Vergleiche.

Die Vergleichsoperatoren in und nicht im Zaum, ob ein Wert auftritt (nicht auftritt) in einer Folge. Die Betreiber sind und nicht zu vergleichen, ob zwei Objekte sind wirklich das gleiche Objekt; Das ist nur für veränderbare Objekte wie Listen. Alle Vergleichsoperatoren haben die gleiche Priorität, die als die aller numerischen Operatoren niedriger ist.

Vergleiche können verkettet werden. Zum Beispiel kann ein < b == c tests whether a is less than b and moreover b equals c .

Die Booleschen Operatoren und und oder Kurzschluss Betreiber sogenannter: ihre Argumente ausgewertet werden von links nach rechts und der Auswertung beendet, sobald das Ergebnis feststeht. wenn A und C sind beispielsweise wahr, aber B ist falsch, A und B und C nicht ausgewertet den Ausdruck C. Wenn als allgemeiner Wert verwendet und nicht als Boolean, der Rückgabewert eines Kurzschluss Betreiber ist die letzte ausgewertet Argument.

Es ist möglich, das Ergebnis eines Vergleichs oder einer anderen Booleschen Ausdrucks einer Variablen zuzuweisen. Beispielsweise,

5.8. Beim Vergleich von Sequenzen und anderer Types¶

Beachten Sie, dass zu vergleichen Objekte verschiedenen Typen mit < or > ist vorgesehen, dass die gesetzlichen Objekte entsprechende Vergleichsmethoden haben. Zum Beispiel werden gemischte numerische Typen verglichen nach ihrem numerischen Wert, so gleich 0 0.0 usw. Ansonsten eher als eine willkürliche Anordnung bereitstellt, wird der Interpreter eine Typeerror-Ausnahme ausgelöst.







In Verbindung stehende Artikel