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.
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