Créer un ensemble ordonné en Python

Muhammad Maisam Abbas 10 octobre 2023
Créer un ensemble ordonné en Python

Ce tutoriel abordera la classe OrderedSet en Python.

Créer des ensembles ordonnés avec la classe OrderedSet en Python

Pour commencer, définissons d’abord ce que signifie un ensemble en Python. C’est une collection bien définie d’objets distincts qui sont en quelque sorte liés. Cette définition ne contient aucun ordre. Donc, par définition, un ensemble n’a pas d’ordre.

Cependant, si un tel scénario se présente où nous devons préserver l’ordre d’origine des éléments de l’ensemble, nous pouvons utiliser la classe OrderedSet. Pour utiliser la classe OrderedSet, nous devons d’abord installer le paquet ordered-set sur notre appareil avec le gestionnaire de paquets Python. La commande pour installer le package ordered-set est donnée ci-dessous.

pip install ordered-set

Maintenant, nous pouvons créer un ensemble qui préserve l’ordre de chaque élément de l’ensemble. Ce processus est illustré dans le programme suivant.

from ordered_set import OrderedSet

setABC = OrderedSet(["A", "B", "C"])
print(setABC)

Production:

OrderedSet(['A', 'B', 'C'])

Nous avons créé un ensemble ordonné et affiché la valeur à chaque index dans l’ordre avec la classe OrderedSet dans le code ci-dessus. Cet OrderedSet est une structure de données mutable qui est un hybride entre les structures de données de liste et d’ensemble. Donc, nous devons initialiser cet ensemble avec une liste ; de cette façon, l’ensemble conserve l’index de chaque élément.

Pour simplifier l’indexation, la fonction add() renvoie l’index du nouvel élément ajouté dans l’ensemble ; ceci est illustré dans le processus suivant ci-dessous.

print(setABC.add("D"))

Production:

3

Nous avons ajouté un autre élément à notre setABC et affiché la valeur renvoyée par la fonction add() dans le code ci-dessus. On peut aussi obtenir l’index d’un élément spécifique avec la fonction index() ; ceci est montré dans l’extrait de code suivant.

print(setABC.index("C"))

Production:

2

Nous avons récupéré l’index de l’élément C à l’intérieur de l’ensemble setABC avec la fonction index() dans le code ci-dessus. Nous pouvons également effectuer les opérations habituelles d’ensembles comme l’union, l’intersection et la différence sur ces ensembles ordonnés avec les opérateurs |, & et -, respectivement.

L’exemple de code suivant montre comment nous pouvons effectuer l’union sur un ensemble ordonné.

from ordered_set import OrderedSet

setABC = OrderedSet(["A", "B", "C", "D"])
setDEF = OrderedSet(["D", "E", "F", "G"])
solutionSet = setABC | setDEF
print(solutionSet)

Production:

OrderedSet(['A', 'B', 'C', 'D', 'E', 'F', 'G'])

Nous avons calculé l’union des ensembles setABC et setDEF avec l’opérateur d’union | dans le code ci-dessus. Le programme suivant ci-dessous nous montre comment nous pouvons effectuer une intersection sur un ensemble ordonné.

from ordered_set import OrderedSet

setABC = OrderedSet(["A", "B", "C", "D"])
setDEF = OrderedSet(["D", "E", "F", "G"])
solutionSet = setABC & setDEF
print(solutionSet)

Production:

OrderedSet(['D'])

Nous avons calculé l’intersection des ensembles setABC et setDEF avec l’opérateur d’intersection & dans le code ci-dessus. L’exemple de code suivant ci-dessous nous montre comment calculer la différence entre deux ensembles ordonnés.

from ordered_set import OrderedSet

setABC = OrderedSet(["A", "B", "C", "D"])
setDEF = OrderedSet(["D", "E", "F", "G"])
solutionSet = setABC - setDEF
print(solutionSet)

Production:

OrderedSet(['A', 'B', 'C'])

Nous avons calculé la différence des ensembles setABC et setDEF avec l’opérateur de différence - dans le code ci-dessus.

Par défaut, Python ne prend pas en charge les ensembles ordonnés. Pourtant, nous pouvons installer un package externe, ordered-set, qui nous donne la fonctionnalité de créer des ensembles ordonnés. Ce processus est pris en charge sur Python version 2.6 et supérieure.

Ces ensembles ordonnés sont un hybride des listes et des ensembles originaux en Python. Donc, nous devons initialiser ces ensembles avec une liste. Ces nouveaux ensembles nous fournissent toutes les fonctionnalités habituelles des ensembles comme l’union, l’intersection et la différence.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Article connexe - Python Set