Un « dict gelé » est-il possible en Python ?
Le concept de « dict gelé » a été un sujet de discussion au sein du Communauté Python. Bien que Python ne fournisse pas de dictionnaire gelé intégré, plusieurs solutions ont émergé pour répondre au besoin d'un dictionnaire immuable et hachable.
Une raison courante pour vouloir un dictionnaire gelé est de mémoriser des appels de fonction avec des arguments inconnus. Une approche typique consiste à convertir les arguments en tuple à l'aide de tuple(sorted(kwargs.items())), en s'appuyant sur la stabilité du tri pour la recherche dans la table de hachage.
Pour une approche plus complète, considérez la classe FrozenDict suivante :
<code class="python">import collections class FrozenDict(collections.Mapping): ...</code>
Cette classe fournit des méthodes d'itération, de détermination de la longueur, de récupération d'éléments et de calcul de hachage, garantissant qu'elle se comporte comme un dictionnaire standard et prend en charge le hachage.
En pratique, FrozenDict fonctionne efficacement :
<code class="python">x = FrozenDict(a=1, b=2) y = FrozenDict(a=1, b=2) print(x is y, x == y, x == {'a': 1, 'b': 2}) d = {x: 'foo'} print(d[y]) # 'foo'</code>
En fournissant une implémentation personnalisée, FrozenDict permet des dictionnaires immuables et hachables en Python, étendant les possibilités de gestion des objets et d'optimisation de la mémoire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!