Le viste del dizionario sono essenzialmente ciò che dice il loro nome: le viste sono semplicemente come una finestra sulle chiavi e sui valori (o elementi) di un dizionario. Ecco un estratto dalla documentazione ufficiale per 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])
(L'equivalente di Python 2 usa dishes.viewkeys()
edishes.viewvalues()
.)
Questo esempio mostra il carattere dinamico delle viste : la vista chiavi non è una copia delle chiavi in un dato momento, ma piuttosto una semplice finestra che mostra le chiavi; se sono cambiati, cambia anche quello che vedi attraverso la finestra. Questa funzione può essere utile in alcune circostanze (ad esempio, si può lavorare con una vista sulle chiavi in più parti di un programma invece di ricalcolare l'elenco corrente di chiavi ogni volta che sono necessarie) - notare che se le chiavi del dizionario vengono modificate durante l'iterazione della vista, il comportamento dell'iteratore non è ben definito, il che può causare errori .
Un vantaggio è che guardando , diciamo, i tasti usano solo una piccola e fissa quantità di memoria e richiedono una piccola e fissa quantità di tempo del processore , in quanto non v'è alcuna creazione di un elenco di chiavi (Python 2, d'altra parte, spesso crea inutilmente un nuovo elenco, come citato da Rajendran T, che richiede memoria e tempo in una quantità proporzionale alla lunghezza dell'elenco). Per continuare l'analogia della finestra, se vuoi vedere un paesaggio dietro un muro, fai semplicemente un'apertura (costruisci una finestra); copiare le chiavi in un elenco corrisponderebbe invece a dipingere una copia del paesaggio sul muro: la copia richiede tempo, spazio e non si aggiorna da sola.
Per riassumere, le viste sono semplicemente ... viste (finestre) sul tuo dizionario, che mostrano il contenuto del dizionario anche dopo che è stato modificato. Offrono funzionalità diverse da quelle degli elenchi: un elenco di chiavi contiene una copia delle chiavi del dizionario in un determinato momento, mentre una vista è dinamica ed è molto più veloce da ottenere, poiché non è necessario copiare alcun dato ( chiavi o valori) per essere creati.