Las vistas de diccionario son esencialmente lo que dice su nombre: las vistas son simplemente como una ventana en las claves y valores (o elementos) de un diccionario. Aquí hay un extracto de la documentación oficial de 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])
(Los usos equivalentes de Python 2 dishes.viewkeys()
ydishes.viewvalues()
.)
Este ejemplo muestra el carácter dinámico de las vistas : la vista de teclas no es una copia de las teclas en un momento dado, sino una ventana simple que le muestra las teclas; si se cambian, entonces lo que ves a través de la ventana también cambia. Esta característica puede ser útil en algunas circunstancias (por ejemplo, se puede trabajar con una vista de las teclas en varias partes de un programa en lugar de volver a calcular la lista actual de teclas cada vez que se necesitan); tenga en cuenta que si se modifican las teclas del diccionario al iterar sobre la vista, el comportamiento del iterador no está bien definido, lo que puede provocar errores .
Una ventaja es que mirar , por ejemplo, las teclas usa solo una cantidad pequeña y fija de memoria y requiere una cantidad pequeña y fija de tiempo de procesador , ya que no se crea una lista de teclas (Python 2, por otro lado, a menudo crea innecesariamente una nueva lista, como lo cita Rajendran T, que requiere memoria y tiempo en una cantidad proporcional a la longitud de la lista). Para continuar con la analogía de la ventana, si desea ver un paisaje detrás de una pared, simplemente haga una abertura en ella (construye una ventana); copiar las claves en una lista correspondería en lugar de pintar una copia del paisaje en su pared: la copia lleva tiempo, espacio y no se actualiza sola.
Para resumir, las vistas son simplemente ... vistas (ventanas) en su diccionario, que muestran el contenido del diccionario incluso después de que cambie. Ofrecen características que difieren de las de las listas: una lista de claves contiene una copia de las claves del diccionario en un momento dado, mientras que una vista es dinámica y es mucho más rápida de obtener, ya que no tiene que copiar ningún dato ( claves o valores) para ser creados.