Les vues de dictionnaire sont essentiellement ce que leur nom dit: les vues sont simplement comme une fenêtre sur les clés et les valeurs (ou éléments) d'un dictionnaire. Voici un extrait de la documentation officielle 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])
(L'équivalent Python 2 utilise dishes.viewkeys()
et dishes.viewvalues()
.)
Cet exemple montre le caractère dynamique des vues : la vue des clés n'est pas une copie des clés à un moment donné, mais plutôt une simple fenêtre qui vous montre les clés; s'ils sont modifiés, ce que vous voyez à travers la fenêtre change également. Cette fonctionnalité peut être utile dans certaines circonstances (par exemple, on peut travailler avec une vue sur les clés dans plusieurs parties d'un programme au lieu de recalculer la liste actuelle des clés à chaque fois qu'elles sont nécessaires) - notez que si les clés du dictionnaire sont modifiées lors de l'itération sur la vue, le comportement de l'itérateur n'est pas bien défini, ce qui peut entraîner des erreurs .
Un avantage est que regarder , par exemple, les clés n'utilise qu'une petite quantité de mémoire fixe et nécessite une quantité de temps processeur faible et fixe , car il n'y a pas de création de liste de clés (Python 2, d'autre part, crée souvent inutilement une nouvelle liste, comme cité par Rajendran T, qui prend de la mémoire et du temps dans une quantité proportionnelle à la longueur de la liste). Pour continuer l'analogie de la fenêtre, si vous voulez voir un paysage derrière un mur, vous faites simplement une ouverture dedans (vous construisez une fenêtre); copier les clés dans une liste correspondrait à la peinture d'une copie du paysage sur votre mur - la copie prend du temps, de l'espace et ne se met pas à jour.
Pour résumer, les vues sont simplement… des vues (fenêtres) de votre dictionnaire, qui affichent le contenu du dictionnaire même après sa modification. Ils offrent des fonctionnalités qui diffèrent de celles des listes: une liste de clés contient une copie des clés du dictionnaire à un moment donné, tandis qu'une vue est dynamique et est beaucoup plus rapide à obtenir, car elle ne doit copier aucune donnée ( clés ou valeurs) afin d'être créé.