Créer un ensemble d'ensembles en Python

Vaibhav Vaibhav 10 octobre 2023
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.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Article connexe - Python Set