As visualizações de dicionário são essencialmente o que seu nome diz: as visualizações são simplesmente como uma janela nas chaves e valores (ou itens) de um dicionário. Aqui está um trecho da documentação oficial do 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])
(O equivalente do Python 2 usa dishes.viewkeys()
e dishes.viewvalues()
.)
Este exemplo mostra o caráter dinâmico das visualizações : a visualização de chaves não é uma cópia das chaves em um determinado momento, mas uma janela simples que mostra as chaves; se eles forem alterados, o que você vê através da janela também muda. Esse recurso pode ser útil em algumas circunstâncias (por exemplo, é possível trabalhar com uma exibição nas chaves em várias partes de um programa em vez de recalcular a lista atual de chaves sempre que necessário) - observe que, se as chaves do dicionário forem modificadas ao iterar sobre a exibição, o comportamento do iterador não está bem definido, o que pode levar a erros .
Uma vantagem é que olhar para, digamos, as chaves usa apenas um pequeno e fixo quantidade de memória e requer um pequeno e fixo quantidade de tempo do processador , já que não há criação de uma lista de chaves (Python 2, por outro lado, geralmente cria desnecessariamente uma nova lista, conforme citado por Rajendran T, que leva memória e tempo em uma quantidade proporcional ao comprimento da lista). Para continuar a analogia da janela, se você quiser ver uma paisagem atrás de uma parede, basta fazer uma abertura nela (você constrói uma janela); copiar as chaves em uma lista corresponderia a pintar uma cópia da paisagem na parede - a cópia ocupa tempo, espaço e não se atualiza.
Para resumir, as visualizações são simplesmente ... visualizações (janelas) no seu dicionário, que mostram o conteúdo do dicionário mesmo depois que ele é alterado. Eles oferecem recursos diferentes dos das listas: uma lista de chaves contém uma cópia das chaves do dicionário em um determinado momento, enquanto uma exibição é dinâmica e é muito mais rápida de obter, pois não precisa copiar nenhum dado ( chaves ou valores) para serem criados.