In diesem Tutorial erfahren Sie alles über Python-Wörterbücher. wie sie erstellt werden, auf Elemente zugreifen, sie hinzufügen, sie entfernen und verschiedene integrierte Methoden.
Video: Python-Wörterbücher zum Speichern von Schlüssel- / Wertepaaren
Das Python-Wörterbuch ist eine ungeordnete Sammlung von Elementen. Jedes Element eines Wörterbuchs hat ein key/value
Paar.
Wörterbücher werden optimiert, um Werte abzurufen, wenn der Schlüssel bekannt ist.
Python-Wörterbuch erstellen
Das Erstellen eines Wörterbuchs ist so einfach wie das Platzieren von Elementen in geschweiften Klammern, ()
die durch Kommas getrennt sind.
Ein Element hat ein key
und ein entsprechendes Element value
, das als Paar ausgedrückt wird ( Schlüssel: Wert ).
Während die Werte von einem beliebigen Datentyp sein können und sich wiederholen können, müssen Schlüssel vom unveränderlichen Typ sein (Zeichenfolge, Zahl oder Tupel mit unveränderlichen Elementen) und eindeutig sein.
# empty dictionary my_dict = () # dictionary with integer keys my_dict = (1: 'apple', 2: 'ball') # dictionary with mixed keys my_dict = ('name': 'John', 1: (2, 4, 3)) # using dict() my_dict = dict((1:'apple', 2:'ball')) # from sequence having each item as a pair my_dict = dict(((1,'apple'), (2,'ball')))
Wie Sie oben sehen können, können wir mit der integrierten dict()
Funktion auch ein Wörterbuch erstellen .
Zugriff auf Elemente aus dem Wörterbuch
Während die Indizierung mit anderen Datentypen verwendet wird, um auf Werte zuzugreifen, verwendet ein Wörterbuch keys
. Schlüssel können entweder in eckigen Klammern ()
oder mit der get()
Methode verwendet werden.
Wenn wir die eckigen Klammern verwenden ()
, KeyError
wird diese angehoben, falls im Wörterbuch kein Schlüssel gefunden wird. Andererseits gibt die get()
Methode zurück, None
wenn der Schlüssel nicht gefunden wird.
# get vs () for retrieving elements my_dict = ('name': 'Jack', 'age': 26) # Output: Jack print(my_dict('name')) # Output: 26 print(my_dict.get('age')) # Trying to access keys which doesn't exist throws error # Output None print(my_dict.get('address')) # KeyError print(my_dict('address'))
Ausgabe
Jack 26 Keine Traceback (letzter Anruf zuletzt): Datei "", Zeile 15, in gedruckter Form (my_dict ('address')) KeyError: 'address'
Ändern und Hinzufügen von Wörterbuchelementen
Wörterbücher sind veränderlich. Mit einem Zuweisungsoperator können wir neue Elemente hinzufügen oder den Wert vorhandener Elemente ändern.
Wenn der Schlüssel bereits vorhanden ist, wird der vorhandene Wert aktualisiert. Falls der Schlüssel nicht vorhanden ist, wird dem Wörterbuch ein neues Paar ( Schlüssel: Wert ) hinzugefügt.
# Changing and adding Dictionary Elements my_dict = ('name': 'Jack', 'age': 26) # update value my_dict('age') = 27 #Output: ('age': 27, 'name': 'Jack') print(my_dict) # add item my_dict('address') = 'Downtown' # Output: ('address': 'Downtown', 'age': 27, 'name': 'Jack') print(my_dict)
Ausgabe
('Name': 'Jack', 'Alter': 27) ('Name': 'Jack', 'Alter': 27, 'Adresse': 'Innenstadt')
Elemente aus dem Wörterbuch entfernen
Mit der pop()
Methode können wir ein bestimmtes Element in einem Wörterbuch entfernen . Diese Methode entfernt ein Element mit dem bereitgestellten key
und gibt das zurück value
.
Die popitem()
Methode kann verwendet werden, um ein beliebiges (key, value)
Elementpaar aus dem Wörterbuch zu entfernen und zurückzugeben . Mit der clear()
Methode können alle Elemente gleichzeitig entfernt werden.
Wir können das del
Schlüsselwort auch verwenden , um einzelne Elemente oder das gesamte Wörterbuch selbst zu entfernen.
# Removing elements from a dictionary # create a dictionary squares = (1: 1, 2: 4, 3: 9, 4: 16, 5: 25) # remove a particular item, returns its value # Output: 16 print(squares.pop(4)) # Output: (1: 1, 2: 4, 3: 9, 5: 25) print(squares) # remove an arbitrary item, return (key,value) # Output: (5, 25) print(squares.popitem()) # Output: (1: 1, 2: 4, 3: 9) print(squares) # remove all items squares.clear() # Output: () print(squares) # delete the dictionary itself del squares # Throws Error print(squares)
Ausgabe
16 (1: 1, 2: 4, 3: 9, 5: 25) (5, 25) (1: 1, 2: 4, 3: 9) () Rückverfolgung (letzter Aufruf zuletzt): Datei "", Zeile 30 im Druck (Quadrate) NameError: Der Name 'Quadrate' ist nicht definiert
Python-Wörterbuchmethoden
Methoden, die mit einem Wörterbuch verfügbar sind, sind unten tabellarisch aufgeführt. Einige von ihnen wurden bereits in den obigen Beispielen verwendet.
Methode | Beschreibung |
---|---|
klar() | Entfernt alle Elemente aus dem Wörterbuch. |
Kopieren() | Gibt eine flache Kopie des Wörterbuchs zurück. |
fromkeys (seq (, v)) | Gibt ein neues Wörterbuch mit Schlüsseln aus seq und einem Wert gleich v zurück (standardmäßig v None ). |
get (Schlüssel (, d)) | Gibt den Wert des Schlüssels zurück. Wenn der Schlüssel nicht vorhanden ist, wird d zurückgegeben (standardmäßig None ). |
Artikel() | Gibt ein neues Objekt der Wörterbuchelemente im Format (Schlüssel, Wert) zurück. |
Schlüssel() | Gibt ein neues Objekt der Wörterbuchwörter zurück. |
Pop (Taste (, d)) | Entfernt das Element mit dem Schlüssel und gibt seinen Wert oder d zurück, wenn der Schlüssel nicht gefunden wird. Wenn d nicht angegeben ist und der Schlüssel nicht gefunden wird, wird er ausgelöst KeyError . |
popitem () | Entfernt ein beliebiges Element ( Schlüssel, Wert ) und gibt es zurück. KeyError Wird ausgelöst, wenn das Wörterbuch leer ist. |
setdefault (Taste (, d)) | Gibt den entsprechenden Wert zurück, wenn sich der Schlüssel im Wörterbuch befindet. Wenn nicht, fügt der Schlüssel mit dem Wert d ein und gibt d zurück (standardmäßig None ). |
Update ((andere)) | Updates the dictionary with the key/value pairs from other, overwriting existing keys. |
values() | Returns a new object of the dictionary's values |
Here are a few example use cases of these methods.
# Dictionary Methods marks = ().fromkeys(('Math', 'English', 'Science'), 0) # Output: ('English': 0, 'Math': 0, 'Science': 0) print(marks) for item in marks.items(): print(item) # Output: ('English', 'Math', 'Science') print(list(sorted(marks.keys())))
Output
('Math': 0, 'English': 0, 'Science': 0) ('Math', 0) ('English', 0) ('Science', 0) ('English', 'Math', 'Science')
Python Dictionary Comprehension
Dictionary comprehension is an elegant and concise way to create a new dictionary from an iterable in Python.
Dictionary comprehension consists of an expression pair (key: value) followed by a for
statement inside curly braces ()
.
Here is an example to make a dictionary with each item being a pair of a number and its square.
# Dictionary Comprehension squares = (x: x*x for x in range(6)) print(squares)
Output
(0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25)
This code is equivalent to
squares = () for x in range(6): squares(x) = x*x print(squares)
Output
(0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25)
A dictionary comprehension can optionally contain more for or if statements.
An optional if
statement can filter out items to form the new dictionary.
Here are some examples to make a dictionary with only odd items.
# Dictionary Comprehension with if conditional odd_squares = (x: x*x for x in range(11) if x % 2 == 1) print(odd_squares)
Output
(1: 1, 3: 9, 5: 25, 7: 49, 9: 81)
To learn more dictionary comprehensions, visit Python Dictionary Comprehension.
Other Dictionary Operations
Dictionary Membership Test
We can test if a key
is in a dictionary or not using the keyword in
. Notice that the membership test is only for the keys
and not for the values
.
# Membership Test for Dictionary Keys squares = (1: 1, 3: 9, 5: 25, 7: 49, 9: 81) # Output: True print(1 in squares) # Output: True print(2 not in squares) # membership tests for key only not value # Output: False print(49 in squares)
Output
True True False
Iterating Through a Dictionary
We can iterate through each key in a dictionary using a for
loop.
# Iterating through a Dictionary squares = (1: 1, 3: 9, 5: 25, 7: 49, 9: 81) for i in squares: print(squares(i))
Output
1 9 25 49 81
Dictionary Built-in Functions
Integrierte Funktionen wie all()
, any()
, len()
, cmp()
, sorted()
, etc. sind häufig mit Wörterbuch verwendet , um verschiedene Aufgaben auszuführen.
Funktion | Beschreibung |
---|---|
alle() | Rückgabe, True wenn alle Schlüssel des Wörterbuchs True sind (oder wenn das Wörterbuch leer ist). |
irgendein() | Rückgabe, True wenn ein Schlüssel des Wörterbuchs wahr ist. Wenn das Wörterbuch leer ist, kehren Sie zurück False . |
len () | Geben Sie die Länge (die Anzahl der Elemente) im Wörterbuch zurück. |
cmp () | Vergleicht Elemente aus zwei Wörterbüchern. (Nicht verfügbar in Python 3) |
sortiert () | Gibt eine neue sortierte Liste von Schlüsseln im Wörterbuch zurück. |
Hier sind einige Beispiele, die integrierte Funktionen verwenden, um mit einem Wörterbuch zu arbeiten.
# Dictionary Built-in Functions squares = (0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81) # Output: False print(all(squares)) # Output: True print(any(squares)) # Output: 6 print(len(squares)) # Output: (0, 1, 3, 5, 7, 9) print(sorted(squares))
Ausgabe
Falsch Richtig 6 (0, 1, 3, 5, 7, 9)