Les ensembles en Python

1 – Définir un ensemble en Python

Un ensemble en Python ( Python set) est une collection non ordonnée et non indexée. En Python, les ensembles sont écrits  avec des accolades {….}.

mySet = {"Stylo", "Crayon", "Gomme"}
print(mySet)
# Affiche  : {'Gomme', 'Crayon', 'Stylo'}

Remarque

Les ensembles ne sont pas ordonnés, les éléments apparaitront donc dans un ordre aléatoire.

2 – Accès aux éléments d’un ensemble Python

Vous ne pouvez pas accéder aux éléments d’un ensemble en faisant référence à un index, car les ensembles ne sont pas ordonnés, les éléments n’ont pas d’index. Mais vous pouvez parcourir les éléments de l’ensemble à l’aide d’une boucle for ou demander si une valeur spécifiée est présente dans un ensemble à l’aide du mot clé in.

Exemple: affichage des éléments d’un ensemble

mySet = {"Stylo", "Crayon", "Gomme"} 
for x in mySet:     
    print(x)

Ce qui affiche :
Crayon
Gomme
Stylo

Vous remarquez que chaque fois que vous faite une nouvelle exécution du programme, il y a un ordre d’affichage différent. Ce qui veut dire que l’ordre dans les ensembles Python n’a aucune importance !

Exemple: vérification d’appartenance d’un élément

mySet = {"Stylo", "Crayon", "Gomme"} 
print("Crayon" in mySet) # affiche : True
print("Cahier" in mySet) # affiche : False

3 – Longueur ou cardinal d’un ensemble Python

Pour connaitre la longueur (cardinal) d’un ensemble Python, on utilise la méthode len()

Exemple: longueur d’un ensemble python

mySet = {"Stylo", "Crayon", "Gomme"}
cardinal = len(mySet)
print("card(mySet) = ", cardinal)
# affiche card(mySet) =  3

4 – Opérations : ajouter, supprimer ou mettre à jour un ensemble Python

4.1 Ajouter un ou plusieurs éléments à un ensemble Python

– Pour ajoutez un élément à un ensemble Python, on utilise la méthode add():

Exemple: ajout d’un élément à un ensemble

mySet = {"Stylo", "Crayon", "Gomme"}
mySet.add ("Cahier")
print(mySet)

– On peut aussi ajouter plusieurs éléments en même temps, mais cette fois ci avec la méthode update():

Exemple : ajouter plusieurs éléments

mySet = {"Stylo", "Crayon", "Gomme"}
mySet.update (["Cahier", "Cartable", "Trousse"])
print(mySet)

4.2 Supprimer un élément d’un ensemble Python

Pour supprimer un élément d’un ensemble Python, deux choix s’offrent à vous la méthode remove() ou la méthode discard()

Exemple: supprimer “Crayon” par la méthode remove()

mySet = {"Stylo", "Crayon", "Gomme"}
mySet.remove("Crayon")
print(mySet) # affiche {'Gomme', 'Stylo'}

Remarque: Si l’élément à supprimer n’existe pas, remove() générera une erreur.

Exemple: supprimer “Crayon” par la méthode discard():

mySet = {"Stylo", "Crayon", "Gomme"}
mySet.discard("Crayon")
print(mySet) # affiche {'Gomme', 'Stylo'}

Remarque: Contrairement à la méthode remove(), la méthode discard() ne génère aucune erreur lorsque l’élément à supprimer n’existe pas! L’instruction de suppression sera simplement ignorée !

Remarque: vous pouvez également utiliser la méthode pop() pour supprimer un élément, mais cette méthode supprimera le dernier élément. Rappelez-vous que les ensembles ne sont pas ordonnés et vous ne saurez pas quel élément sera supprimé. La suppression est totalement aléatoire !

4.3 Vider un ensemble Python

– Pour vider ensemble Python, on se sert de la méthode clear()

Exemple: vider un ensemble Python

mySet = {"Stylo", "Crayon", "Gomme"}
mySet.clear()
print(mySet) # affiche set{} qui veut dire un ensemble vide

4.4 Supprimer un ensemble

Pour supprimer un ensemble Python, on utilise la commande del

Exemple: supprimer un ensemble

mySet = {"Stylo", "Crayon", "Gomme"}
del mySet
print(mySet) 
# affiche le message d'erreur: builtins.NameError: name 'mySet' is not defined 

5 Récapitulatif des méthodes associées à un ensemble Python

  1. add() : ajoute un élément à l’ensemble
  2. clear() : supprime tous les éléments de l’ensemble
  3. copy() : retourne une copie de l’ensemble
  4. difference () : retourne un ensemble contenant la différence entre deux ensembles ou plus.
  5. difference_update() : supprime les éléments de cet ensemble qui sont également inclus dans un autre ensemble spécifié
  6. discard() : supprimer l’élément spécifié
  7. intersection() : retourne un ensemble, qui est l’intersection de deux autres ensembles.
  8. intersection_update() : supprime les éléments de cet ensemble qui ne sont pas présents dans d’autres ensembles spécifiés.
  9. isdisjoint() : indique si deux ensembles ont une intersection ou non.
  10. issubset() : indique si un autre jeu contient ce jeu ou non.
  11. issuperset() : indique si cet ensemble contient un autre ensemble ou non.
  12. pop() : supprime un élément de l’ensemble
  13. remove() : supprime l’élément spécifié
  14. symmetric_difference() : retourne un ensemble avec les différences symétriques de deux ensembles
  15. symmetric_difference_update() : insère les différences symétriques de cet ensemble et d’un autre
  16. union() : retourne un ensemble contenant l’union des ensembles
  17. update() : met à jour l’ensemble avec l’union de cet ensemble et d’autres