Créer un ensemble d'ensembles en Python
En tant que programmeur, il faut avoir une bonne connaissance des structures de données. Il existe de nombreuses structures de données en informatique, parmi lesquelles les tableaux et les ensembles sont très faciles à comprendre. Étant donné que cet article ne concerne pas les structures de données, nous ne les approfondirons pas, nous parlerons plutôt spécifiquement des ensembles.
En Python, nous pouvons créer un tableau de tableaux ou une liste de listes. Cependant, ce n’est pas vrai pour les ensembles. Nous ne pouvons pas créer un ensemble d’ensembles en Python. Ne croyez-vous pas cela? Essayez le code suivant.
print({{1, 2}, {2, 3}})
Le code ci-dessus générera une erreur, qui est la suivante.
Traceback (most recent call last):
File "<string>", line 1, in <module>
TypeError: unhashable type: 'set'
Étant donné que les ensembles sont mutables, ils ne peuvent pas être hachés. Étant donné qu’un ensemble a besoin de valeurs hachables pour maintenir l’unicité et rejeter les valeurs en double, nous ne pouvons pas créer un ensemble d’ensembles de cette façon. Au lieu de cela, nous devons suivre des approches différentes.
Mutable signifie que le contenu de la structure de données peut être modifié, tandis que immuable signifie que le contenu de la structure de données ne peut pas être modifié. Quelques exemples de structures de données mutables sont les listes
, les sets
, et les dictionnaires
. Et quelques exemples de structures de données immuables sont strings
, frozenset
, et tuples
.
Hashable signifie que la structure de données peut être représentée comme une chaîne unique à l’intérieur de la mémoire, tandis qu’unhashable signifie que la structure de données ne peut pas être représentée comme une chaîne unique à l’intérieur de la mémoire.
Créer un ensemble d’ensembles à l’aide de frozenset
en Python
frozenset
est un type d’ensemble pré-construit en Python. Un frozenset
et un ensemble
remplissent la même fonction : stocker des valeurs uniques et rejeter les valeurs en double qui leur sont ajoutées. Cependant, un frozenset
est immuable et hachable, tandis qu’un ensemble
est modifiable et non hachable. Puisqu’un frozenset
est immuable, il peut être utilisé comme clé dans un dictionnaire et stocké dans un set
, car un set
ne peut stocker que des valeurs immuables. Comprenons mieux cela avec du code Python.
a = set([frozenset([1, 2]), frozenset([2, 3]), frozenset([3, 4])])
print(a)
La sortie du code ci-dessus est la suivante.
{frozenset({3, 4}), frozenset({2, 3}), frozenset({1, 2})}
Pour en savoir plus sur frozenset
, reportez-vous à la documentation officielle de Python ici.