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'}
Quiz

Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen

Was bewirkt pop(), wenn es auf einem Dictionary aufgerufen wird?
A. Entfernt nur das Schlüssel-Wert-Paar
B. Entfernt und gibt den Wert für den angegebenen Schlüssel zurück
C. Gibt nur den Wert zurück, ohne ihn zu entfernen
D. Entfernt alle Elemente aus dem Dictionary

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}
Quiz

Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen

Was passiert beim Zusammenführen von zwei Dictionaries mit {**dict_b, **dict_a}, wenn beide Dictionaries denselben Schlüssel haben?
A. Der Wert von dict_b überschreibt den Wert von dict_a
B. Der Wert von dict_a überschreibt den Wert von dict_b
C. Beide Werte werden in einer Liste beibehalten
D. Es wird ein Fehler ausgelöst