Python Dictionary
Table of Contents
In diesem Tutorial erfahren Sie alles über Python-Wörterbücher. wie sie erstellt werden, auf sie zugreifen, sie hinzufügen, Elemente daraus entfernen und verschiedene integrierte Methoden.
Python-Wörterbuch ist eine ungeordnete Sammlung von Elementen. Jedes Element eines Wörterbuchs hat a key/value
Paar.
Wörterbücher sind optimiert, um Werte abzurufen, wenn der Schlüssel bekannt ist.
Creating Python Dictionary
Das Erstellen eines Wörterbuchs ist so einfach wie das Platzieren von Elementen in geschweiften Klammern {}
durch Kommata abgetrennt.
Ein Artikel hat a key
und ein entsprechendes value
das wird als Paar ausgedrückt (key: value).
Während die Werte einen beliebigen Datentyp haben und sich wiederholen können, müssen Schlüssel einen unveränderlichen Typ haben (String , Zahl oder Tupel mit unveränderlichen Elementen) und müssen 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 auch ein Wörterbuch mit dem erstellen built-in dict()
Funktion.
Accessing Elements from Dictionary
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 verwendet werden []
oder mit dem get()
method.
Wenn wir die eckigen Klammern verwenden []
, KeyError
wird ausgelöst, falls ein Schlüssel im Wörterbuch nicht gefunden wird. Auf der anderen Seite ist die get()
Methode gibt 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'])
Output
Jack 26 None Traceback (most recent call last): File "<string>", line 15, in <module> print(my_dict['address']) KeyError: 'address'
Changing and Adding Dictionary elements
Wörterbücher sind veränderbar. Wir können neue Elemente hinzufügen oder den Wert vorhandener Elemente mithilfe eines Zuweisungsoperators ändern.
Wenn der Schlüssel bereits vorhanden ist, wird der vorhandene Wert aktualisiert. Falls der Schlüssel nicht vorhanden ist, wird ein neuer (key: value) paar wird dem Wörterbuch 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)
Output
{'name': 'Jack', 'age': 27} {'name': 'Jack', 'age': 27, 'address': 'Downtown'}
Removing elements from Dictionary
Wir können ein bestimmtes Element aus einem Wörterbuch entfernen, indem wir die pop()
method. Diese Methode entfernt ein Element mit dem bereitgestellten key
und gibt die zurück value
.
The popitem()
Die Methode kann verwendet werden, um ein beliebiges . zu entfernen und zurückzugeben (key, value)
Elementpaar aus dem Wörterbuch. Alle Elemente können auf einmal entfernt werden, indem Sie dieclear()
method.
Wir können auch die del
Schlüsselwort, 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)
Output
16 {1: 1, 2: 4, 3: 9, 5: 25} (5, 25) {1: 1, 2: 4, 3: 9} {} Traceback (most recent call last): File "<string>", line 30, in <module> print(squares) NameError: name 'squares' is not defined
Python Dictionary Methods
Methoden, die mit einem Wörterbuch verfügbar sind, sind unten tabellarisch aufgeführt. Einige davon wurden bereits in den obigen Beispielen verwendet.
Method | Description |
---|---|
clear() | Removes all items from the dictionary. |
copy() | Returns a shallow copy of the dictionary. |
fromkeys(seq[, v]) | Returns a new dictionary with keys from seq and value equal to v (defaults to None ). |
get(key[,d]) | Returns the value of the key. If the key does not exist, returns d (defaults to None ). |
items() | Return a new object of the dictionary’s items in (key, value) format. |
keys() | Returns a new object of the dictionary’s keys. |
pop(key[,d]) | Removes the item with the key and returns its value or d if key is not found. If d is not provided and the key is not found, it raises KeyError . |
popitem() | Removes and returns an arbitrary item (key, value). Raises KeyError if the dictionary is empty. |
setdefault(key[,d]) | Returns the corresponding value if the key is in the dictionary. If not, inserts the key with a value of d and returns d (defaults to None ). |
update([other]) | Updates the dictionary with the key/value pairs from other, overwriting existing keys. |
values() | Returns a new object of the dictionary’s values |
Hier sind einige Beispiele für Anwendungsfälle dieser Methoden.
# 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
Das Wörterbuchverständnis ist eine elegante und prägnante Möglichkeit, ein neues Wörterbuch aus einem iterierbaren in Python zu erstellen.
Das Wörterbuchverständnis besteht aus einem Ausdruckspaar (key: value) gefolgt von einem for
anweisung in geschweiften Klammern {}
.
Hier ist ein Beispiel, um ein Wörterbuch zu erstellen, bei dem jedes Element ein Paar aus einer Zahl und seinem Quadrat ist.
# 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}
Dieser Code ist äquivalent zu
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}
Ein Wörterbuchverständnis kann optional weitere for oder if anweisungen enthalten.
Eine optionale if
anweisung kann Elemente herausfiltern, um das neue Wörterbuch zu bilden.
Hier sind einige Beispiele, um ein Wörterbuch mit nur ungeraden Elementen zu erstellen.
# 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}
Weitere Informationen zum Wörterbuchverständnis finden Sie unter Python Dictionary Comprehension.
Other Dictionary Operations
Dictionary Membership Test
Wir können testen, ob akey
in einem Wörterbuch ist oder das Schlüsselwort nicht verwendet in
. Beachten Sie, dass der Mitgliedschaftstest nur für die keys
und nicht für die 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
Wir können jeden Schlüssel in einem Wörterbuch mit a . iterieren for
Schleife.
# 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
Built-in Funktionen wie all()
, any()
, len()
, cmp()
, sorted()
, usw. werden häufig mit Wörterbüchern verwendet, um verschiedene Aufgaben auszuführen.
Function | Description |
---|---|
all() | Return True if all keys of the dictionary are True (or if the dictionary is empty). |
any() | Return True if any key of the dictionary is true. If the dictionary is empty, return False . |
len() | Return the length (the number of items) in the dictionary. |
cmp() | Compares items of two dictionaries. (Not available in Python 3) |
sorted() | Return a new sorted list of keys in the dictionary. |
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))
Output
False True 6 [0, 1, 3, 5, 7, 9]