Python Dictionaries
In Python ist ein Dictionary eine geordnete (ab Python > 3.7) Sammlung von key: value-Paaren.
Aus der Python 3 Dokumentation
Die Hauptoperationen für ein Dictionary sind das Speichern eines Wertes mit einem bestimmten Schlüssel und das Extrahieren des Wertes anhand des Schlüssels. Es ist auch möglich, ein Schlüssel:Wert-Paar mit del zu löschen.
Beispiel-Dictionary:
# Dictionary: collection of key-value pairs
my_cat = {
'size': 'fat', # key: 'size', value: 'fat'
'color': 'gray', # key: 'color', value: 'gray'
'disposition': 'loud' # key: 'disposition', value: 'loud'
}
Schlüssel, Wert mit dem Subskriptoperator [] setzen
# Add or update dictionary entry using subscript operator
my_cat = {
'size': 'fat',
'color': 'gray',
'disposition': 'loud',
}
my_cat['age_years'] = 2 # Add new key-value pair
print(my_cat)
{'size': 'fat', 'color': 'gray', 'disposition': 'loud', 'age_years': 2}
Wert mit dem Subskriptoperator [] abrufen
Falls der Schlüssel nicht im Dictionary vorhanden ist, wird KeyError ausgelöst.
my_cat = {
'size': 'fat',
'color': 'gray',
'disposition': 'loud',
}
print(my_cat['size'])
fat
print(my_cat['eye_color'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'eye_color'
values()
Die Methode values() gibt die Werte des Dictionaries zurück:
# Iterate over dictionary values using .values() method
pet = {'color': 'red', 'age': 42}
for value in pet.values(): # Loop through all values
print(value)
red
42
keys()
Die Methode keys() gibt die Schlüssel des Dictionaries zurück:
# Iterate over dictionary keys using .keys() method
pet = {'color': 'red', 'age': 42}
for key in pet.keys(): # Loop through all keys
print(key)
color
age
Es ist nicht notwendig, .keys() zu verwenden, da standardmäßig über die Schlüssel iteriert wird:
# Iterating over dictionary directly loops through keys (default behavior)
pet = {'color': 'red', 'age': 42}
for key in pet: # Equivalent to for key in pet.keys()
print(key)
color
age
items()
Die Methode items() gibt die Elemente eines Dictionaries zurück und liefert sie als Tupel:
pet = {'color': 'red', 'age': 42}
for item in pet.items():
print(item)
('color', 'red')
('age', 42)
Mithilfe der Methoden keys(), values() und items() kann eine for-Schleife über die Schlüssel, Werte bzw. Schlüssel-Wert-Paare in einem Dictionary iterieren.
# Iterate over key-value pairs using .items() method
pet = {'color': 'red', 'age': 42}
for key, value in pet.items(): # Unpack tuple into key and value
print(f'Key: {key} Value: {value}')
Key: color Value: red
Key: age Value: 42
get()
Die Methode get() gibt den Wert eines Elements mit dem angegebenen Schlüssel zurück. Wenn der Schlüssel nicht existiert, wird None zurückgegeben:
# .get() method: safely retrieve value, returns None if key doesn't exist
wife = {'name': 'Rose', 'age': 33}
f'My wife name is {wife.get("name")}' # Returns 'Rose'
'My wife name is Rose'
f'She is {wife.get("age")} years old.'
'She is 33 years old.'
f'She is deeply in love with {wife.get("husband")}'
'She is deeply in love with None'
Sie können den Standardwert None auch durch einen von Ihnen gewählten Wert ersetzen:
wife = {'name': 'Rose', 'age': 33}
f'She is deeply in love with {wife.get("husband", "lover")}'
'She is deeply in love with lover'
Elemente mit setdefault() hinzufügen
Es ist möglich, ein Element auf diese Weise zu einem Dictionary hinzuzufügen:
wife = {'name': 'Rose', 'age': 33}
if 'has_hair' not in wife:
wife['has_hair'] = True
Mit der Methode setdefault können wir denselben Code kürzer gestalten:
wife = {'name': 'Rose', 'age': 33}
wife.setdefault('has_hair', True)
wife
{'name': 'Rose', 'age': 33, 'has_hair': True}
Elemente entfernen
pop()
Die Methode pop() entfernt und gibt ein Element basierend auf einem angegebenen Schlüssel zurück.
wife = {'name': 'Rose', 'age': 33, 'hair': 'brown'}
wife.pop('age')
33
wife
{'name': 'Rose', 'hair': 'brown'}
Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen
pop(), wenn es auf einem Dictionary aufgerufen wird?popitem()
Die Methode popitem() entfernt das letzte Element in einem Dictionary und gibt es zurück.
wife = {'name': 'Rose', 'age': 33, 'hair': 'brown'}
wife.popitem()
('hair', 'brown')
wife
{'name': 'Rose', 'age': 33}
del
Die Methode del entfernt ein Element basierend auf einem angegebenen Schlüssel.
wife = {'name': 'Rose', 'age': 33, 'hair': 'brown'}
del wife['age']
wife
{'name': 'Rose', 'hair': 'brown'}
clear()
Die Methode clear() entfernt alle Elemente in einem Dictionary.
wife = {'name': 'Rose', 'age': 33, 'hair': 'brown'}
wife.clear()
wife
{}
Überprüfen von Schlüsseln in einem Dictionary
person = {'name': 'Rose', 'age': 33}
'name' in person.keys()
True
'height' in person.keys()
False
'skin' in person # You can omit keys()
False
Überprüfen von Werten in einem Dictionary
person = {'name': 'Rose', 'age': 33}
'Rose' in person.values()
True
33 in person.values()
True
Pretty Printing
import pprint
wife = {'name': 'Rose', 'age': 33, 'has_hair': True, 'hair_color': 'brown', 'height': 1.6, 'eye_color': 'brown'}
pprint.pprint(wife)
{'age': 33,
'eye_color': 'brown',
'hair_color': 'brown',
'has_hair': True,
'height': 1.6,
'name': 'Rose'}
Zwei Dictionaries zusammenführen
Für Python 3.5+:
dict_a = {'a': 1, 'b': 2}
dict_b = {'b': 3, 'c': 4}
dict_c = {**dict_b, **dict_a}
dict_c
{'a': 1, 'b': 3, 'c': 4}
Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen
{**dict_b, **dict_a}, wenn beide Dictionaries denselben Schlüssel haben?dict_b überschreibt den Wert von dict_adict_a überschreibt den Wert von dict_b