Dynamische Programmierung mit Wörterbüchern

Abgeschlossen

Sie möchten in Ihrem Programm verschiedene Berechnungen durchführen, z. B. das Summieren der Monde. Darüber hinaus stellen Sie möglicherweise mit fortschreitend komplexerer Programmierung fest, dass Sie diese Art von Informationen aus Dateien oder einer Datenbank laden, anstatt sie direkt in Python zu programmieren.

Zur Unterstützung dieser Szenarien erlaubt Ihnen Python, sowohl die Schlüssel als auch die Werte in einem Wörterbuch als Liste zu behandeln. Sie können Schlüssel und Werte dynamisch ermitteln und verschiedene Berechnungen ausführen.

Stellen Sie sich ein Wörterbuch vor, das monatliche Niederschlagsmengen speichert. Wahrscheinlich hätten Sie Schlüssel für jeden Monat und die damit verbundene Niederschlagsmenge. Sie möchten die Gesamtmenge der Niederschläge aufsummieren, und das Schreiben des Codes zum Ausführen dieses Vorgangs mithilfe jedes einzelnen Schlüssels wäre ziemlich mühsam.

Abrufen aller Schlüssel und Werte

Die keys()-Methode gibt ein Listenobjekt zurück, das alle Schlüssel enthält. Sie können diese Methode verwenden, um alle Elemente im Wörterbuch zu durchlaufen.

Stellen Sie sich vor, dass Sie folgendes Wörterbuch haben, in dem die Niederschläge der letzten drei Monate gespeichert sind.

rainfall = {
    'october': 3.5,
    'november': 4.2,
    'december': 2.1
}

Angenommen, Sie möchten die Liste aller Niederschläge anzeigen. Sie können den Namen jedes Monats von Hand eingeben, aber das wäre mühsam.


for key in rainfall.keys():
    print(f'{key}: {rainfall[key]}cm')
october: 3.5cm
november: 4.2cm
december: 2.1cm

Hinweis

Sie können immer noch eckige Klammern ([ ]) mit einem Variablennamen anstelle des hart codierten Zeichenfolgenliterals verwenden.

Ermitteln, ob ein Schlüssel in einem Wörterbuch vorhanden ist

Wenn Sie einen Wert in einem Wörterbuch aktualisieren, überschreibt Python entweder den vorhandenen Wert oder erstellt einen neuen Wert, wenn der Schlüssel nicht vorhanden ist. Wenn Sie einem Wert etwas hinzufügen möchten, statt ihn zu überschreiben, können Sie mithilfe von in überprüfen, ob der Schlüssel vorhanden ist. Wenn Sie z. B. Dezember einen Wert hinzufügen oder einen neuen erstellen möchten, wenn er noch nicht vorhanden ist, können Sie Folgendes verwenden:

if 'december' in rainfall:
    rainfall['december'] = rainfall['december'] + 1
else:
    rainfall['december'] = 1

# Because december exists, the value will be 3.1

Abrufen aller Werte

Ähnlich wie keys() gibt values() die Liste aller Werte in einem Wörterbuch ohne deren entsprechende Schlüssel zurück. values() kann hilfreich sein, wenn Sie den Schlüssel zu Bezeichnungszwecken verwenden, z. B. im vorherigen Beispiel, in dem die Schlüssel die Monatsnamen sind. Sie können values() verwenden, um die Gesamtmenge der Niederschläge zu bestimmen:

total_rainfall = 0
for value in rainfall.values():
    total_rainfall = total_rainfall + value

print(f'There was {total_rainfall}cm in the last quarter.')
There was 10.8cm in the last quarter.