Tutoriel Python : définir les ensembles
Table des matières
Création d’un ensemble « set »
Les propriétés des ensembles sur Python
L’ordre des éléments d’un ensemble
L’unicité des éléments d’un ensemble
Quelques fonctions prédéfinies utiles
Ajouter un élément dans un ensemble
Supprimer un élément d'un ensemble
Suppression d’un élément aléatoire
Suppression d’un élément défini d’un ensemble
L’appartenance d’un élément dans un ensemble
Définir la longueur d’un ensemble
Intersection de deux ensembles
La différence de deux ensembles
La différence symétrique de deux ensembles
Introduction :
Ayant un grand nombre de données, il est impératif d’avoir un moyen pour les stocker, dans ce cas, la notion des itérables se manifeste pour définir ce besoin.
Il existe quatre types prédéfinis de collection de données dans le langage de programmation Python : les ensembles, les listes, les dictionnaires et les tuples.
Ainsi, lors du choix d'un de ces types, il est utile de comprendre leurs propriétés pour en choisir le meilleur afin de stocker vos données, ce qui pourra signifier une augmentation d’efficacité et de sécurité de votre programme.
Dans ce tutoriel, on engagera la notion des ensembles sur Python et leurs propriétés, par la suite, on définira quelques fonctions utiles pour manipuler cet itérable, et enfin, on révèlera les concepts mathématiques qu’il traite.
Définir un ensemble « set » :
Une des structures de collection de données sur Python est : les ensembles ou sets en anglais. Dans cette partie, on va introduire comment créer un ensemble sur Python.
Création d’un ensemble « set » :
Afin de définir un ensemble sur Python, on utilise des accolades { }, ou bien, la fonction intégrée set().
Les accolades {} :
On peut stocker des données en les introduisant entre deux accolades {} tout en les séparant par une virgule.
Exemple :
Syntaxe :
# Création d'un ensemble :
ensemble1 = {152, "une donnée", 18 print("les données stockées dans ensemble1 sont : ", ensemble1)
print(type(ensemble1))
Résultat d’exécution :
La fonction intégrée set() :
La fonction intégrée set() permet de convertir un itérable (une liste, un dictionnaire, ou un tuple) en un ensemble, et permet aussi de décomposer les caractères d’une chaine de caractères..
Notez bien que la fonction set() n’admet qu’un seul argument.
Exemple :
Syntaxe :
# Création d'un ensemble :
# Décomposition d'une chaine de caractères :
ensemble1 = set("Python")
print("les données stockées dans ensemble1 sont : ", ensemble1)
print("ensemble1 ->", type(ensemble1))
# Convertir une structure de collection de données en un ensemble :
liste = [156,65,966]
print("liste ->", type(liste))
ensembleC = set(liste)
print("les données stockées dans ensembleC sont : ", ensembleC)
print("ensembleC ->", type(ensembleC))
Résultat d’exécution :
Création d’un ensemble vide :
Il est possible de créer un ensemble vide sur Python en utilisant la fonction intégrée set(), mais, l’utilisation d’accolades vides définira un dictionnaire vide.
Exemple :
Syntaxe :
# Création d'un ensemble vide :
ensemble_vide = set()
print("les données stockées dans ensemble_vide sont : ", ensemble_vide)
print(type(ensemble_vide))
# l'utilisation d'accolades vides définira un dictionnaire vide :
dict_vide = {}
print("les données stockées dans dict_vide sont : ", dict_vide)
print(type(dict_vide))
Résultat d’exécution :
Les propriétés des ensembles sur Python :
L’ordre des éléments d’un ensemble :
Les éléments d’un ensemble sont non ordonnés et non indexés, c’est-à-dire, lors de l’affichage des éléments d’un ensemble, on n’est pas sûr de quel ordre vont-ils se présenter.
Exemple :
Syntaxe :
# Affichage d'un ensemble :
ensemble = {"élément 1", "élément 2", "élément 3", "élément 4"}
print(ensemble)
Résultat d’exécution :
L’unicité des éléments d’un ensemble :
Les éléments d’un ensemble sont uniques, c’est-à-dire, les ensembles sur Python ne stockent pas des éléments dupliqués ou des doublons.
D’autre part, il n’est pas possible de modifier les éléments d’un ensemble, mais il est possible d’en ajouter de nouveaux éléments.
Exemple :
Syntaxe :
# Création d'un ensemble avec des éléments dupliqués :
ensemble1 = {1, 1, "a", "a"}
print ("les données stockées dans ensemble1 sont : ", ensemble1)
ensemble2 = set("AAABBCCCcc")
print ("les données stockées dans ensemble2 sont : ", ensemble2)
Résultat d’exécution :
Quelques fonctions prédéfinies utiles :
Ajouter un élément dans un ensemble :
La fonction intégrée add() permet d’ajouter un élément dans un ensemble, tandis que la fonction intégrée update() permet d’ajouter plusieurs éléments dans un ensemble.
Exemple d'ajout d'un seul élément à un ensemble :
Syntaxe :
# Exemple d'ajout d'un seul élément dans un ensemble avec la fonction add() :
ensemble = {"élément1", "élément2", "élément3"}
ensemble.add("élémentAjouté")
print(ensemble)
Résultat d’exécution :
Exemple d'ajout de plusieurs éléments dans un ensemble :
Syntaxe :
# Exemple d'ajout de plusieurs éléments dans un ensemble avec la fonction update() :
ensemble = {"élément1", "élément2", "élément3"}
ensemble.update({"élémentAjouté1", "élémentAjouté2"})
print(ensemble)
Résultat d’exécution :
Supprimer un élément d'un ensemble :
Suppression d’un élément aléatoire :
La fonction intégrée pop() permet de retirer un élément aléatoire d’un ensemble.
Exemple :
Syntaxe :
# Exemple de suppression d'un élément aléatoire avec la fonction pop() :
ensemble = {"élément1", "élément2", "élément3", "élément4"}
ensemble.pop()
print(ensemble)
Résultat d’exécution :
Suppression d’un élément défini d’un ensemble :
La fonction intégrée remove() permet de retirer un élément d’un ensemble, mais, si l’élément à supprimer n’appartient pas à l’ensemble, Python affiche une erreur.
D’une autre part, la fonction intégrée discard() permet de retirer un élément d’un ensemble, sans afficher d’erreur si l’élément à supprimer n’appartient pas à l’ensemble.
Exemple de la fonction intégrée remove() :
Syntaxe :
# Exemple de suppression d'un élément avec la fonction remove() :
ensemble = {"élément1", "élément2", "élément3", "élément4"}
ensemble.remove("élément1")
print(ensemble)
Résultat d’exécution :
Exemple de la fonction intégrée discard() :
Syntaxe :
# Exemple de suppression d'un élément avec la fonction discard() :
ensemble = {"élément1", "élément2", "élément3", "élément4"}
ensemble.discard("élément1")
ensemble.discard("élémentNonInclu")
print(ensemble)
Résultat d’exécution :
Supprimer un ensemble :
Afin de supprimer tout un ensemble, on utilise l’instruction del, mais, pour supprimer tous les éléments d’un ensemble, en gardant l’ensemble vide, on utilise la fonction clear().
Exemple de l’instruction del :
Syntaxe :
# Exemple de suppression d'un ensemble avec l'instruction del :
ensemble = {"élément1", "élément2", "élément3", "élément4"}
del ensemble
print(ensemble)
Résultat d’exécution :
Exemple de la fonction intégrée clear() :
Syntaxe :
# Exemple de suppression d'un ensemble avec la fonction clear() :
ensemble = {"élément1", "élément2", "élément3", "élément4"}
ensemble.clear()
print(ensemble)
Résultat d’exécution :
L’appartenance d’un élément dans un ensemble :
L’instruction in permet de vérifier l’appartenance d’une valeur dans un ensemble, elle renvoie une valeur booléenne : True, si l’élément appartient à l’ensemble, et False, si l’élément n’appartient pas à l’ensemble.
Exemple :
Syntaxe :
# Exemple de test d'appartenance d'un élément dans un ensemble :
ensemble = {"élément1", "élément2", "élément3", "élément4"}
print ("élément3 appartient-il à l'ensemble ?", "élément3" in ensemble)
print ("élément5 appartient-il à l'ensemble ?", "élément5" in ensemble)
Résultat d’exécution :
Définir la longueur d’un ensemble :
La fonction intégrée len() détermine et renvoie la valeur du nombre des éléments stockés dans un ensemble.
Exemple :
Syntaxe :
# Exemple de la fonction len() :
ensemble1 = {"élément1", "élément2", "élément3", "élément4"}
ensemble2 = {"élément4", "élément5", "élément6"}
print ("le nombre d'éléments appartenant à ensemble1 :", len(ensemble1))
print ("le nombre d'éléments appartenant à ensemble2 :", len(ensemble2))
Résultat d’exécution :
Opérations des ensembles :
Similaire au concept mathématique des ensembles, il est possible d’effectuer les opérations d’union, d’intersection, de différence et de différence symétrique sur les ensembles sur python.
Union de deux ensembles :
L’opération d’union de deux ensembles (notée A U B en mathématiques) représente tous les élément contenus ou stockés dans les deux ensembles.
Afin de réaliser une union de deux ensembles sur Python, on utilise le caractère | tel que « ensemble1 | ensemble2 ».
Ainsi, la fonction prédéfinie union() permet de renvoyer un nouvel ensemble avec tous les éléments des deux ensembles.
En outre, la fonction prédéfinie update() permet d’insérer les éléments d’un ensemble dans un autre ensemble.
Notez bien que lors d’une union de deux ensembles ayant des éléments similaires, une seule valeur des deux éléments sera stockée dans l’ensemble qui portera l’union. N’oubliez pas que les ensembles ne contiennent pas de valeurs en double.
Exemple :
Syntaxe :
# Exemple d'opération d’union de deux ensembles :
ensemble1 = {"élément1", "élément2", "élément3", "élément4"}
ensemble2 = {"élément3", "élément4", "élément5", "élément6"}
# Exemple avec le caractère | :
ensemble_uni1 = ensemble1 | ensemble2
print ("les données stockées dans ensemble_uni1 sont : ", ensemble_uni1)
# Exemple avec la fonction prédéfinie union() :
ensemble_uni2 = ensemble1.union(ensemble2)
print ("les données stockées dans ensemble_uni2 sont : ", ensemble_uni2)
# Exemple avec la fonction prédéfinie update() :
ensemble1.update(ensemble2)
print ("les données stockées dans ensemble1 sont : ", ensemble1)
Résultat d’exécution :
Intersection de deux ensembles :
L’opération d’intersection de deux ensembles (notée A ? B en mathématiques) représente tous les éléments appartenant à la fois aux deux ensembles.
Afin de réaliser une intersection de deux ensembles sur Python, on utilise le caractère & tel que « ensemble1 & ensemble2 ».
Ainsi, la fonction prédéfinie intersection() permet de renvoyer un nouvel ensemble avec les éléments appartenant à la fois aux deux ensembles.
Exemple :
Syntaxe :
# Exemple d'opération d’intersection de deux ensembles :
ensemble1 = {"élément1", "élément2", "élément3", "élément4"}
ensemble2 = {"élément3", "élément4", "élément5", "élément6"}
# Exemple avec le caractère & :
ensemble_inter1 = ensemble1 & ensemble2
print ("les données stockées dans ensemble_inter1 sont : ", ensemble_inter1)
# Exemple avec la fonction prédéfinie intersection() :
ensemble_inter2 = ensemble1.intersection(ensemble2)
print ("les données stockées dans ensemble_inter2 sont : ", ensemble_inter2)
Résultat d’exécution :
La différence de deux ensembles :
L’opération de différence de deux ensembles (notée A \ B en mathématiques) représente les éléments appartenant à un ensemble qui n’appartiennent pas à un autre.
Afin de réaliser une différence de deux ensembles sur Python, on utilise le caractère - tel que « ensemble1 - ensemble2 ».
Ainsi, la fonction prédéfinie difference() permet de renvoyer la différence de deux ensembles.
Exemple :
Syntaxe :
# Exemple d'opération de différence de deux ensembles :
ensemble1 = {"élément1", "élément2", "élément3", "élément4"}
ensemble2 = {"élément3", "élément4", "élément5", "élément6"}
# Exemple avec le caractère - :
ensemble_diff1 = ensemble1 - ensemble2
print ("les données stockées dans ensemble_diff1 sont : ", ensemble_diff1)
# Exemple avec la fonction prédéfinie difference() :
ensemble_diff2 = ensemble1.difference(ensemble2)
print ("les données stockées dans ensemble_diff2 sont : ", ensemble_diff2)
Résultat d’exécution :
La différence symétrique de deux ensembles :
L’opération de différence symétrique de deux ensembles (notée A ? B en mathématiques) représente les éléments appartenant à un des deux ensembles, mais pas les deux à la fois.
Afin de réaliser une différence symétrique de deux ensembles sur Python, on utilise le caractère ^ tel que « ensemble1 ^ ensemble2 ».
Ainsi, la fonction prédéfinie symmetric_difference() permet de renvoyer la différence symétrique de deux ensembles.
Exemple :
Syntaxe :
# Exemple d'opération de différence symétrique de deux ensembles :
ensemble1 = {"élément1", "élément2", "élément3", "élément4"}
ensemble2 = {"élément3", "élément4", "élément5", "élément6"}
# Exemple avec le caractère ^ :
ensemble_diffSym1 = ensemble1 ^ ensemble2
print ("les données stockées dans ensemble_diffSym1 sont : ", ensemble_diffSym1)
# Exemple avec la fonction prédéfinie symmetric_difference() :
ensemble_diffSym2 = ensemble1.symmetric_difference(ensemble2)
print ("les données stockées dans ensemble_diffSym2 sont : ", ensemble_diffSym2)
Résultat d’exécution :
Les sous-ensembles :
Un sous-ensemble est un ensemble dont tous ses éléments de appartiennent à un autre. On utilise la fonction intégrée issubset() ou bien l’opérateur
Exemple :
Syntaxe :
# Exemple de sous-ensemble :
ensemble1 = {"élément1", "élément2", "élément3", "élément4"}
ensemble2 = {"élément3", "élément4"}
ensemble3 = {"élément5", "élément6"}
ensemble4 = set()
# Exemple avec la fonction issubset() :
print ("ensemble1 est-il un sous-ensemble de ensemble1 ? :", ensemble1.issubset(ensemble1))
print ("ensemble2 est-il un sous-ensemble de ensemble1 ? :", ensemble2.issubset(ensemble1))
print ("ensemble3 est-il un sous-ensemble de ensemble1 ? :", ensemble3.issubset(ensemble1))
print ("ensemble4 est-il un sous-ensemble de ensemble1 ? :", ensemble4.issubset(ensemble1))
# Exemple avec la fonction print ("")
print ("ensemble1 est-il un sous-ensemble de ensemble1 ? :", ensemble1 print ("ensemble2 est-il un sous-ensemble de ensemble1 ? :", ensemble2 print ("ensemble3 est-il un sous-ensemble de ensemble1 ? :", ensemble3 print ("ensemble4 est-il un sous-ensemble de ensemble1 ? :", ensemble4
Résultat d’exécution :
Les sur-ensembles :
Un sur-ensemble est un ensemble contenant tous les éléments d’un autre ensemble (sous-ensemble). On utilise la fonction intégrée issuperset() ou bien les opérateurs >= ou > pour définir un sur-ensemble, ces instructions renvoient une valeur booléenne : True ou False.
Exemple :
Syntaxe :
# Exemple de sur-ensemble :
ensemble1 = {"élément1", "élément2", "élément3", "élément4"}
ensemble2 = {"élément3", "élément4"}
ensemble3 = {"élément5", "élément6"}
ensemble4 = set()
# Exemple avec la fonction issuperset() :
print ("ensemble1 est-il un sur-ensemble de ensemble1 ? : ", ensemble1.issuperset(ensemble1))
print ("ensemble1 est-il un sur-ensemble de ensemble2 ? : ", ensemble1.issuperset(ensemble2))
print ("ensemble1 est-il un sur-ensemble de ensemble3 ? : ", ensemble1.issuperset(ensemble3))
print ("ensemble1 est-il un sur-ensemble de ensemble4 ? : ", ensemble1.issuperset(ensemble4))
# Exemple avec l'opérateur > :
print("")
print ("ensemble1 est-il un sur-ensemble de ensemble1 ? : ", ensemble1 > ensemble1)
print ("ensemble1 est-il un sur-ensemble de ensemble2 ? : ", ensemble1 > ensemble2)
print ("ensemble1 est-il un sur-ensemble de ensemble3 ? : ", ensemble1 > ensemble3)
print ("ensemble1 est-il un sur-ensemble de ensemble4 ? : ", ensemble1 > ensemble4)
# Exemple avec l'opérateur >= :
print("")
print ("ensemble1 est-il un sur-ensemble de ensemble1 ? : ", ensemble1 >= ensemble1)
print ("ensemble1 est-il un sur-ensemble de ensemble2 ? : ", ensemble1 >= ensemble2)
print ("ensemble1 est-il un sur-ensemble de ensemble3 ? : ", ensemble1 >= ensemble3)
print ("ensemble1 est-il un sur-ensemble de ensemble4 ? : ", ensemble1 >= ensemble4)
Résultat d’exécution :
Conclusion :
Pour effectuer des analyses et des calculs de données plus complexes, tout en les organisant dans votre programme Python, vous aurez à comprendre ces notions afin de manipuler les ensembles ou sets en anglais.
Dans une autre partie de ce tutoriel, on engagera les autres types d’itérables : les listes les tuples et les dictionnaires, afin de faire le bon choix dans votre programme.
En espérant que ce tutoriel vous a plu, bonne chance à vous !
Article publié le 01 Octobre 2020 par Ismail BOUZIANE