Python-Wörterbuch Wie Sie es verwenden können, um besseren Code zu schreiben

Python-Wörterbuch Wie Sie es verwenden können, um besseren Code zu schreiben / Programmierung

Ein Python-Wörterbuch ist eine Datenstruktur, die einem assoziativen Array ähnelt, das in anderen Programmiersprachen gefunden wird. Ein Array oder eine Liste indiziert Elemente nach Position. Ein Wörterbuch indiziert dagegen Elemente von Schlüssel das können Zeichenketten 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. Die einfachste Verwendung der Klammerinitialisierung mit einer an JSON erinnernden Syntax. So erhalten Sie Python und JavaScript für die Kommunikation mit JSON. So erhalten Sie Python und JavaScript für die Kommunikation mit JSON. Heute werde ich Ihnen zeigen, wie Sie mit JSON Daten von JavaScript an Python senden . Ich werde darauf eingehen, wie Sie einen Webserver einrichten und den Code eingeben, den Sie benötigen. Weiterlesen .

Benutzer = 'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27 

Sie können auch Zahlen als Schlüssel verwenden. Seien Sie jedoch vorsichtig, wenn Sie Fließkommazahlen als Schlüssel verwenden, da der Computer diese Werte als Näherungswerte speichert. Alles, was Sie über RAM & Speicherverwaltung wissen müssen. Alles, was Sie über RAM & Speicherverwaltung wissen müssen. Daher hat die Speicherverwaltung erhebliche Auswirkungen auf die Systemleistung. Hier erklären wir, wie RAM funktioniert und ob Sie etwas zur Steigerung der Effizienz tun können. Weiterlesen .

rain_percent = 1980: '17% ', 1981: '15%', 1982: '10% ' print rain_percent print rain_percent [1980] # druckt 1980: '17%', 1981: '15% ', 1982: '10% ' 17% 

Schlüsselwertpaare angeben

Sie können ein Wörterbuch auch erstellen und initialisieren, indem Sie Namen-Wert-Paare als Schlüsselwortargumente für die verwenden dict () Konstrukteur.

Bevölkerung = Dikt (Kalifornien = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) Druck Bevölkerung # Drucke 'Connecticut': 3574097, 'Delaware': 897934, 'Kalifornien': 37253956, 'Colorado': 5029196 

Array von Schlüsselwert-Tupeln

Eine weitere Möglichkeit zum Erstellen eines Wörterbuchs besteht in der Verwendung eines Arrays von Schlüsselwerttupeln. Hier ist das gleiche Beispiel wie oben.

Paare = [('California', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)] Population = Diktier (Paare) print Population # druckt 'Connecticut': 3574097, "Delaware": 897934, "Kalifornien": 37253956, "Colorado": 5029196 

Diktierverständnis

Das Diktierverständnis bietet eine coole Syntax zum Initialisieren eines Diktats, wenn Sie die Werte anhand der Schlüssel berechnen können. Im Folgenden wird ein Diktier von Zahlen und Quadratwerten für einen Zahlenbereich initialisiert.

print x: x ** 2 für x in xrange (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? Der letzte Teil (für x in xrange (10, 20)) gibt einen Zahlenbereich im angegebenen Bereich zurück. Der Teil des Diktierverstehens (x: x ** 2…) durchläuft diesen Bereich und initialisiert das Wörterbuch.

Mit einem Python-Wörterbuch arbeiten

Was können Sie mit Wörterbüchern tun, wenn Sie sie erst einmal 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, so wie Sie es mit einem Array oder einer Liste tun würden. Funktionsweise von Arrays und Listen in Python Funktionsweise von Arrays und Listen in Python Arrays und Listen sind einige der nützlichsten Datenstrukturen beim Programmieren. obwohl nur wenige Menschen sie voll ausschöpfen. Weiterlesen .

Druckbevölkerung ['Delaware'] # druckt 897934 

Wenn der Schlüssel eine Zahl ist, benötigen Sie keine Anführungszeichen. Der Ausdruck scheint dann wie eine Listen- oder Array-Indexierung auszusehen.

print rain_percent [1980] # druckt 17% 

Der Typ des Schlüssels muss beim Zugriff mit dem im Python-Wörterbuch gespeicherten Schlüssel ü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 

Um auf einen Schlüssel zuzugreifen und einen Standardwert anzugeben, wenn die Zuordnung nicht vorhanden ist, verwenden Sie die erhalten() Methode mit Standardwert als zweites Argument.

print rain_percent.get (1985, '0%') # druckt 0% 

Auf Existenz prüfen

Was ist, wenn Sie das Vorhandensein eines Schlüssels überprüfen möchten, ohne tatsächlich darauf zuzugreifen (und möglicherweise auf einen KeyError wie oben)? Du kannst den ... benutzen im Stichwort im Formular Schlüssel in dct was einen Boolean zurückgibt.

print 1980 in rain_percent print '1980' in rain_percent # druckt "True False" 

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 in dct eingeben.

print 1980 nicht in rain_percent print 1985 nicht in rain_percent # druckt False True 

Elemente ändern

Ändern Sie den Wert, indem Sie den gewünschten Schlüssel zuweisen.

Benutzer = 'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27 Benutzer ['Alter'] = 29 Druckbenutzer # Drucke '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 'print Benutzer # druckt ' dob ': '15 -sep-1971', 'Nachname': 'Smith', 'Alter': 29, 'Vorname': ' John' 

Aktualisieren Sie mehrere Elemente eines Wörterbuchs auf einmal mit der aktualisieren() Methode.

users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users.update ('age': 29, 'dob': '15 -sep-1971 ') drucken Benutzer # Drucke 'dob': '15 -sep-1971 ',' Nachname ':' Smith ',' Alter ': 29,' Vorname ':' John ' 

Legen Sie einen Standardwert für einen Schlüssel mit fest setdefault (). Diese Methode legt den Wert für den Schlüssel fest, wenn das Mapping nicht vorhanden ist. Es gibt den aktuellen Wert zurück.

# ändert den aktuellen Wert nicht. print users.setdefault ('firstname', 'Jane') # druckt John # setzt den Wert print users.setdefault ('city', 'NY') # druckt NY # Endwert druckbenutzer # prints ' 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 einem begegnen KeyError wenn der Schlüssel nicht im Wörterbuch vorhanden ist.

Benutzer = 'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27 del users ['age'] Druckbenutzer # druckt 'Nachname': 'Smith', 'Vorname': ' John' 

Verwenden Sie die Pop() Methode stattdessen, wenn der gelöschte Wert zurückgegeben werden soll.

users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 print users.pop ('age') Druckbenutzer # druckt 27 'lastname': 'Smith', 'Vorname ': 'John' 

Was ist, wenn Sie einen Schlüssel löschen möchten, wenn er existiert, 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 = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users.pop ('foo', keine) druckbenutzer # druckt 'lastname': 'Smith', 'age ': 27,' Vorname ':' John ' 

Und hier ist ein One-Liner, um einen Schlüsselbund 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']) Druckbenutzer 

Möchten Sie alle Schlüssel aus einem Wörterbuch löschen? Verwenden Sie die klar() Methode.

users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 users.clear () Druckbenutzer # druckt  

Schleife mit Python-Wörterbüchern

Python bietet viele Methoden zum Schleifen. Funktionsweise von Do-While-Loops in der Computerprogrammierung Funktionsweise von Do-While-Loops in Computerprogrammierungen Loops sind eine der ersten Steuerungstypen, die Sie beim Programmieren lernen. Sie wissen wahrscheinlich, wann und für Schleifen, aber was leistet eine do-while-Schleife? Lesen Sie mehr über die Einträge eines Wörterbuchs. Wählen Sie eine für Ihre Bedürfnisse.

Looping über Tasten

  • Die einfachste Methode zum aufeinanderfolgenden Verarbeiten von Schlüsseln (und möglicherweise Werten) verwendet eine Schleife der Form:
    users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 für k in users: print k, '=>', users [k] # druckt lastname => Smith age = > 27 Vorname => Johannes 
  • Verwendung der Methode iterkeys () funktioniert genauso wie oben. Treffen Sie Ihre Wahl, welches Formular Sie verwenden möchten.
    users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 für k in users.iterkeys (): print k, '=>', users [k] # druckt lastname = > 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 verarbeiteten Schlüssels benötigen, verwenden Sie die aufzählen() eingebaute Funktion wie gezeigt.
    Benutzer = 'Vorname': 'John', 'Nachname': 'Smith', 'Alter': 27 für Index, Enumerate eingeben (Benutzer): Index, Schlüssel drucken, '=>', Benutzer [k] # Druckt 0 lastname => John 1 Alter => John 2 Vorname => John 

Durchlaufen von Schlüsselwertpaaren

  • Wenn Sie jedes Schlüsselwertpaar mit einem einzigen Anruf abrufen möchten, verwenden Sie Iteritems ().
    users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 für k, v in users.iteritems (): print k, '=>', v # druckt lastname => Smith Alter => 27 Vorname => John 

Werte überarbeiten

  • Die Methode itervalues ​​() kann verwendet werden, um alle Werte im Wörterbuch zu durchlaufen. Diese Methode sieht jedoch ähnlich aus wie eine Schleife mit Werte(), Es ist effizienter, da nicht alle Werte gleichzeitig extrahiert werden.
    users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 für Wert in users.itervalues ​​(): Druckwert # gibt Smith 27 John aus 

Arrays extrahieren

Die folgenden Methoden beschreiben das Extrahieren verschiedener Python-Wörterbuchinformationen in Form eines Arrays. 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 (gedächtnismäßig) um diese Arrays zu verarbeiten, als mit den oben beschriebenen Iterator-Methoden.

Es ist akzeptabel, mit diesen Arrays zu arbeiten, wenn Sie Elemente aus dem Wörterbuch löschen müssen, wenn Sie auf unerwünschte Elemente stoßen. Wenn Sie beim Ändern des Wörterbuchs mit einem Iterator arbeiten, kann dies zu einem RuntimeError führen.

  • Die Methode Artikel() Gibt ein Array von Schlüsselwert-Tupeln zurück. Sie können diese Schlüssel-Wert-Paare wie gezeigt 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 alle Schlüssel im Wörterbuch mit der Methode ab Schlüssel().
    users = 'firstname': 'John', 'lastname': 'Smith', 'age': 27 print users.keys () # druckt ['lastname', 'age', 'firstname'] 

    Verwenden Sie das zurückgegebene Array, um die Tasten zu durchlaufen.

    für k in users.keys (): print k, '=>', Benutzer [k] # druckt Nachname => Smith-Alter => 27 Vorname => John 
  • Auf ähnliche Weise verwenden Sie die Methode Werte() um alle Werte im Wörterbuch abzurufen.
    für Wert in users.values ​​(): Druckwert # gibt Smith 27 John aus 

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. Vergewissern Sie sich, alle anderen Python-Artikel durchzusehen. 10 Grundlegende Python-Beispiele, die Ihnen helfen werden, schnell zu lernen 10 Grundlegende Python-Beispiele, die Ihnen helfen, schnell zu lernen Dieser Artikel mit grundlegenden Python-Beispielen richtet sich an alle, die bereits über Programmierkenntnisse verfügen und dies einfach möchten so schnell wie möglich zu Python übergehen. Weitere Informationen zu noch mehr Python-Tipps 5 Kurse, die Sie von Python-Anfänger zu Pro bringen 5 Kurse, die Sie von Python-Anfänger zu Pro bringen Diese 5 Kurse vermitteln Ihnen alles über das Programmieren in Python, einer der heißesten Sprachen, die es gibt jetzt sofort. Weiterlesen . Wenn Sie andere Anwendungsfälle haben, die Ihrer Meinung nach berücksichtigt werden sollten, teilen Sie uns dies bitte in den Kommentaren mit!

Bildnachweise: viper345 / Shutterstock

Erfahren Sie mehr über: Python.