Werbung
Ein Python-Wörterbuch ist eine Datenstruktur, die einem assoziativen Array in anderen Programmiersprachen ähnelt. Ein Array oder eine Liste indiziert Elemente nach Position. Ein Wörterbuch hingegen indiziert Elemente nach Schlüssel Das können Strings sein. Stellen Sie sich ein Wörterbuch als ungeordnete Mengen von vor Schlüsselwert Paare.
In diesem Artikel stellen wir Ihnen die Arbeit mit dem Python-Wörterbuch vor.
Wörterbuch erstellen
Es gibt verschiedene Möglichkeiten, ein Python-Wörterbuch zu erstellen. Am einfachsten wird die Klammerinitialisierung mit einer Syntax verwendet erinnert an JSON So bringen Sie Python und JavaScript zur Kommunikation mit JSONHeute zeige ich Ihnen, wie Sie mit JSON Daten von JavaScript an Python senden. Ich werde beschreiben, wie Sie einen Webserver einrichten, zusammen mit dem gesamten Code, den Sie benötigen. Weiterlesen .
users = {'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27}
Sie können auch Zahlen als Schlüssel verwenden. Seien Sie jedoch vorsichtig, wenn Sie Gleitkommazahlen als Schlüssel verwenden, da die
Computer speichert diese als Annäherungen Alles, was Sie über RAM & Memory Management wissen müssenRAM ist das Kurzzeitgedächtnis Ihres Computers. Daher hat die Speicherverwaltung einen erheblichen Einfluss auf die Systemleistung. Hier erklären wir, wie RAM funktioniert und ob Sie etwas tun können, um seine Effizienz zu steigern. Weiterlesen .rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} print rain_percent. print rain_percent [1980] # druckt. {1980: '17%', 1981: '15%', 1982: '10%'} 17%
Angeben von Schlüsselwertpaaren
Sie können ein Wörterbuch auch erstellen und initialisieren, indem Sie Name-Wert-Paare als Schlüsselwortargumente für das verwenden dict () Konstrukteur.
Bevölkerung = Diktat (Kalifornien = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) Druckbevölkerung. # druckt. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}
Array von Schlüsselwert-Tupeln
Eine weitere Möglichkeit zum Erstellen eines Wörterbuchs besteht darin, ein Array von Schlüsselwerttupeln zu verwenden. Hier ist das gleiche Beispiel wie oben.
Paare = [('California', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)] Bevölkerung = Diktat (Paare) Druckbevölkerung. # druckt. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}
Diktatverständnis
Das Diktatverständnis bietet eine coole Syntax zum Initialisieren eines Diktats, wenn Sie die Werte basierend auf den Schlüsseln berechnen können. Im Folgenden wird ein Diktat aus Zahlen und Quadratwerten für einen Zahlenbereich initialisiert.
print {x: x ** 2 für x im x-Bereich (10, 20)} # druckt. {10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}
Wie funktioniert es? Letzterer Teil (für x im x-Bereich (10, 20)) gibt einen Zahlenbereich im angegebenen Bereich zurück. Der Diktat Verständnis Teil ({x: x ** 2 ..}) durchläuft diesen Bereich und initialisiert das Wörterbuch.
Arbeiten mit einem Python-Wörterbuch
Was können Sie mit Wörterbüchern tun, wenn Sie sie erstellt haben? Nun, Sie können auf Elemente zugreifen, Werte aktualisieren, Elemente löschen usw.
Zugriff auf Python-Wörterbuchelemente
Greifen Sie mit dem Schlüssel in Klammern auf ein Element eines Diktats zu, genau wie Sie es tun würden ein Array oder eine Liste Funktionsweise von Arrays und Listen in PythonArrays und Listen sind einige der nützlichsten Datenstrukturen in der Programmierung - obwohl nur wenige Menschen sie in vollem Umfang nutzen. Weiterlesen .
Druckbevölkerung ['Delaware'] # druckt. 897934.
Wenn der Schlüssel eine Zahl ist, benötigen Sie die Anführungszeichen nicht. Der Ausdruck scheint dann wie eine Listen- oder Array-Indizierung auszusehen.
print rain_percent [1980] # druckt. 17%
Der Typ des Schlüssels beim Zugriff muss mit dem im Python-Wörterbuch gespeicherten übereinstimmen. Das Folgende verursacht einen Fehler, da die gespeicherten Schlüssel Zahlen sind, während der Zugriffsschlüssel eine Zeichenfolge ist.
x = '1980' print rain_percent [x] # ergibt 1 x = '1980' > 2 print rain_percent [x] KeyError: '1980'
Zugriff auf einen nicht vorhandenen Schlüssel ist ein Fehler.
rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} print rain_percent [1983] # druckt 1 rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} > 2 print rain_percent [1983] KeyError: 1983.
Verwenden Sie die Taste, um auf einen Schlüssel zuzugreifen und einen Standardwert anzugeben, wenn die Zuordnung nicht vorhanden ist bekommen() Methode mit Standardwert als zweitem Argument.
print rain_percent.get (1985, '0%') # druckt. 0%
Auf Existenz prüfen
Was ist, wenn Sie prüfen möchten, ob ein Schlüssel vorhanden ist, ohne tatsächlich zu versuchen, darauf zuzugreifen (und möglicherweise auf einen zu stoßen)? KeyError wie oben)? Du kannst den... benutzen im Schlüsselwort im Formular Geben Sie dct ein Dies gibt einen Booleschen Wert zurück.
Druck 1980 in rain_percent. print '1980' in rain_percent. # druckt. Wahr. Falsch.
Kehren Sie die Bedingung um (d. H. Stellen Sie sicher, dass der Schlüssel nicht im Python-Wörterbuch vorhanden ist), indem Sie das Formular verwenden Schlüssel nicht in dct. Dies entspricht der Standard-Python-Negation nicht eingeben dct.
Druck 1980 nicht in rain_percent. Druck 1985 nicht in rain_percent. # druckt. Falsch. Wahr.
Elemente ändern
Ändern Sie den Wert, indem Sie ihn dem gewünschten Schlüssel zuweisen.
users = {'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27} Benutzer ['Alter'] = 29. Benutzer drucken. # druckt. {'Nachname': 'Smith', 'Alter': 29, 'Vorname': 'John'}
Verwenden Sie dieselbe Syntax, um dem Python-Wörterbuch eine neue Zuordnung hinzuzufügen.
Benutzer ['dob'] = '15 -sep-1971 ' Benutzer drucken. # druckt. {'dob': '15 -sep-1971 ',' lastname ':' Smith ',' age ': 29,' firstname ':' John '}
Aktualisieren Sie mehrere Elemente eines Wörterbuchs auf einmal mit dem aktualisieren() Methode.
users = {'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27} users.update ({'age': 29, 'dob': '15 -sep-1971 '}) Benutzer drucken. # druckt. {'dob': '15 -sep-1971 ',' lastname ':' Smith ',' age ': 29,' firstname ':' John '}
Legen Sie mit einen Standardwert für einen Schlüssel fest setdefault (). Diese Methode legt den Wert für den Schlüssel fest, wenn die Zuordnung nicht vorhanden ist. Es gibt den aktuellen Wert zurück.
# ändert den aktuellen Wert nicht. print users.setdefault ('Vorname', 'Jane') # druckt. John # setzt Wert. print users.setdefault ('Stadt', 'NY') # druckt. NY # Endwert. Benutzer drucken. # druckt. {'Nachname': 'Smith', 'Alter': 27, 'Vorname': 'John', 'Stadt': 'NY'}
Elemente löschen
Löschen Sie Zuordnungen im Wörterbuch mithilfe von del Operator. Dieser Operator gibt nichts zurück.
Sie werden auf eine stoßen KeyError wenn der Schlüssel nicht im Wörterbuch vorhanden ist.
users = {'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27} del Benutzer ['Alter'] Benutzer drucken. # druckt. {'Nachname': 'Smith', 'Vorname': 'John'}
Verwenden Sie die Pop() Methode stattdessen, wenn Sie den gelöschten Wert zurückhaben möchten.
users = {'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27} print users.pop ('Alter') Benutzer drucken. # druckt. 27. {'Nachname': 'Smith', 'Vorname': 'John'}
Was ist, wenn Sie einen Schlüssel löschen möchten, falls vorhanden, ohne einen Fehler zu verursachen, wenn dies nicht der Fall ist? Sie können verwenden Pop() und angeben Keiner für das zweite Argument wie folgt:
users = {'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27} users.pop ('foo', Keine) Benutzer drucken. # druckt. {'Nachname': 'Smith', 'Alter': 27, 'Vorname': 'John'}
Und hier ist ein Einzeiler, um eine Reihe von Schlüsseln aus einem Wörterbuch zu löschen, ohne einen Fehler bei nicht vorhandenen Schlüsseln zu verursachen.
users = {'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27, 'dob': '15 -sep-1971 '} map (lambda x: users.pop (x, keine), ['age', 'foo', 'dob']) Benutzer drucken.
Möchten Sie alle Schlüssel aus einem Wörterbuch löschen? Verwenden Sie die klar() Methode.
users = {'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27} users.clear () Benutzer drucken. # druckt. {}
Schleifen mit Python-Wörterbüchern
Python bietet viele Methoden zum Schleifen Funktionsweise von Do-While-Schleifen in der ComputerprogrammierungSchleifen sind einer der ersten Steuertypen, die Sie beim Programmieren lernen. Sie kennen wahrscheinlich while- und for-Schleifen, aber was leistet eine do-while-Schleife? Weiterlesen über die Einträge eines Wörterbuchs. Wählen Sie eine aus, die Ihren Anforderungen entspricht.
Schleifen über Schlüssel
- Die einfachste Methode zum sequentiellen Verarbeiten von Schlüsseln (und möglicherweise Werten) verwendet eine Schleife der folgenden Form:
users = {'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27} für k in Benutzern: print k, '=>', Benutzer [k] # druckt. Nachname => Smith. Alter => 27. Vorname => John.
- Mit der Methode iterkeys () funktioniert genauso wie oben. Treffen Sie Ihre Wahl, welches Formular Sie verwenden möchten.
users = {'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27} für k in users.iterkeys (): print k, '=>', users [k] # druckt. Nachname => Smith. Alter => 27. Vorname => John.
- Eine dritte Methode zum Abrufen und Verarbeiten von Schlüsseln in einer Schleife umfasst die Verwendung der integrierten Funktion iter ().
users = {'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27} für k in iter (Benutzer): print k, '=>', Benutzer [k] # druckt. Nachname => Smith. Alter => 27. Vorname => John.
- Wenn Sie den Index des zu verarbeitenden Schlüssels benötigen, verwenden Sie die aufzählen() eingebaute Funktion wie gezeigt.
users = {'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27} Geben Sie für den Index die Aufzählung ein (Benutzer): Druckindex, Schlüssel, '=>', Benutzer [k] # druckt. 0 Nachname => John. 1 Alter => John. 2 Vorname => John.
Durchlaufen von Schlüsselwertpaaren
- Wenn Sie jedes Schlüssel-Wert-Paar mit einem einzigen Aufruf abrufen möchten, verwenden Sie iteritems ().
users = {'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27} für k, v in users.iteritems (): print k, '=>', v. # druckt. Nachname => Smith. Alter => 27. Vorname => John.
Über Werte iterieren
- Die Methode itervalues () kann verwendet werden, um alle Werte im Wörterbuch zu durchlaufen. Diese Methode ähnelt jedoch einer Schleife mit Werte()ist effizienter, da nicht alle Werte gleichzeitig extrahiert werden.
users = {'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27} für Wert in users.itervalues (): Druckwert. # druckt. Schmied. 27. John.
Arrays extrahieren
Die folgenden Methoden beschreiben das Extrahieren verschiedener Python-Wörterbuchinformationen in einer Array-Form. Das resultierende Array kann mit normalen Python-Konstrukten durchlaufen werden. Beachten Sie jedoch, dass das zurückgegebene Array abhängig von der Größe des Wörterbuchs groß sein kann. Es könnte also mehr sein teuer (speichertechnisch) um diese Arrays zu verarbeiten, als mit den oben genannten Iteratormethoden.
Ein Fall, in dem es akzeptabel ist, mit diesen Arrays zu arbeiten, ist, wenn Sie Elemente aus dem Wörterbuch löschen müssen, wenn Sie auf unerwünschte Elemente stoßen. Das Arbeiten mit einem Iterator beim Ändern des Wörterbuchs kann einen RuntimeError verursachen.
- Die Methode Artikel() Gibt ein Array von Schlüsselwert-Tupeln zurück. Sie können diese Schlüssel-Wert-Paare wie folgt durchlaufen:
users = {'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27} für k, v in users.items (): print k, '=>', v. # druckt. Nachname => Smith. Alter => 27. Vorname => John.
- Rufen Sie mit der Methode alle Schlüssel im Wörterbuch ab Schlüssel().
users = {'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27} print users.keys () # druckt. ['Nachname', 'Alter', 'Vorname']
Verwenden Sie das zurückgegebene Array, um die Schlüssel zu durchlaufen.
für k in users.keys (): print k, '=>', users [k] # druckt. Nachname => Smith. Alter => 27. Vorname => John.
- Verwenden Sie die Methode auf ähnliche Weise Werte() um alle Werte im Wörterbuch abzurufen.
für Wert in users.values (): Druckwert. # druckt. Schmied. 27. John.
Wie verwenden Sie Python-Wörterbücher?
Wir haben versucht, die häufigsten Anwendungsfälle für Python-Wörterbücher in diesem Artikel zu behandeln. Schauen Sie sich alle unsere an andere Python-Artikel 10 grundlegende Python-Beispiele, mit denen Sie schnell lernen könnenDieser Artikel mit grundlegenden Python-Beispielen richtet sich an Personen, die bereits Programmiererfahrung haben und einfach so schnell wie möglich auf Python umsteigen möchten. Weiterlesen für gerade Weitere Python-Tipps 5 Kurse, die Sie vom Python-Anfänger zum Profi führenIn diesen fünf Kursen lernen Sie alles über das Programmieren in Python, einer der derzeit heißesten Sprachen. Weiterlesen . Wenn Sie andere Anwendungsfälle haben, die Ihrer Meinung nach enthalten sein sollten, teilen Sie uns dies bitte in den Kommentaren unten mit!
Bildnachweis: viper345 / Shutterstock