Wörterbuchansichten sind im Wesentlichen das, was ihr Name sagt: Ansichten sind einfach wie ein Fenster auf den Schlüsseln und Werten (oder Elementen) eines Wörterbuchs. Hier ist ein Auszug aus der offiziellen Dokumentation zu Python 3:
>>> dishes = {'eggs': 2, 'sausage': 1, 'bacon': 1, 'spam': 500}
>>> keys = dishes.keys()
>>> values = dishes.values()
>>> # view objects are dynamic and reflect dict changes
>>> del dishes['eggs']
>>> keys # No eggs anymore!
dict_keys(['sausage', 'bacon', 'spam'])
>>> values # No eggs value (2) anymore!
dict_values([1, 1, 500])
(Das Python 2-Äquivalent verwendet dishes.viewkeys()
und dishes.viewvalues()
.)
Dieses Beispiel zeigt den dynamischen Charakter von Ansichten : Die Schlüsselansicht ist keine Kopie der Schlüssel zu einem bestimmten Zeitpunkt, sondern ein einfaches Fenster, in dem die Schlüssel angezeigt werden. Wenn sie geändert werden, ändert sich auch das, was Sie durch das Fenster sehen. Diese Funktion kann unter bestimmten Umständen nützlich sein (z. B. kann man mit einer Ansicht der Schlüssel in mehreren Teilen eines Programms arbeiten, anstatt die aktuelle Liste der Schlüssel jedes Mal neu zu berechnen, wenn sie benötigt werden) - beachten Sie, dass die Wörterbuchschlüssel geändert werden Während der Iteration über die Ansicht ist nicht genau definiert, wie sich der Iterator verhalten soll, was zu Fehlern führen kann .
Ein Vorteil besteht darin, dass beispielsweise beim Betrachten der Schlüssel nur eine kleine und feste Menge an Speicher benötigt wird und eine kleine und feste Menge an Prozessorzeit erforderlich ist , da keine Liste von Schlüsseln erstellt wird (Python 2 hingegen). Oft wird unnötigerweise eine neue Liste erstellt, wie von Rajendran T zitiert, die Speicher und Zeit in einer Menge benötigt, die proportional zur Länge der Liste ist. Um die Fensteranalogie fortzusetzen, wenn Sie eine Landschaft hinter einer Wand sehen möchten, machen Sie einfach eine Öffnung darin (Sie bauen ein Fenster); Das Kopieren der Schlüssel in eine Liste würde dem Malen einer Kopie der Landschaft an Ihre Wand entsprechen. Die Kopie benötigt Zeit, Platz und wird nicht selbst aktualisiert.
Zusammenfassend sind Ansichten einfach… Ansichten (Fenster) in Ihrem Wörterbuch, die den Inhalt des Wörterbuchs auch nach dessen Änderung anzeigen. Sie bieten Funktionen, die sich von denen von Listen unterscheiden: Eine Liste von Schlüsseln enthält eine Kopie der Wörterbuchschlüssel zu einem bestimmten Zeitpunkt, während eine Ansicht dynamisch ist und viel schneller abgerufen werden kann, da keine Daten kopiert werden müssen ( Schlüssel oder Werte), um erstellt zu werden.