Ensembles (sets) dans le langage Python

Qu'est-ce qu'un ensemble ?

Un ensemble ou set est une structure de données unique en Python. C'est une liste non ordonnée d'éléments uniques.

Quelles sont les différences avec les tuples ?

Les tuples et les ensembles (sets) sont tous deux des structures de données en Python, mais ils ont des différences significatives.

  • Les éléments des tuples sont ordonnées alors que les éléments des ensembles ne sont pas ordonnées et son forcément uniques.

  • Les tuples sont immuables alors qu'il est possible d'ajouter, de supprimer ou modifier des éléments dans un ensemble.

Créer une ensemble

Pour créer une ensemble, il faut utiliser les accolades {}.

informations = {"Mélanie", 10, 23, "Henrique"}

print(informations)

# Affiche : {'Henrique', 'Mélanie', 10, 23}

Vous avez noté que le résultat renvoie les éléments dans un ordre différent. En effet, puisque les ensembles ou sets ne sont pas ordonnées.

Récupérer un élément

Il n'est pas possible de récupérer un élément d'un ensemble. Si vraiment pour votre projet, vous avez besoin de cette fonctionnalité, il vous faudra le convertir en un tuple ou une liste.

ℹ️ Nous verrons ensemble plus tard comment convertir les différentes structures de données.

Unicité

Une des particularités des ensembles qui est intéressante, est que les éléments sont forcément unique. Il n'y aura jamais de doublons.

Comment cela se traduit-il concrètement ?

nombres = {50, 50, 50, 10, 23, 12}

print(nombres)
# Affiche : {50, 10, 12, 23}

Avez-vous notés ? Dans l'ensemble (set) de la variable nombres, il y a trois fois 50. À l'affichage, il n'y a qu'un seul 50 car pour les ensembles, les éléments sont forcément uniques. Donc, si des doublons sont présents lors de la création, Python les élimine pour les adapter.

Parcourir les éléments d'un ensemble

Il est tout à fait possible de parcourir les éléments d'un ensemble grâce à une boucle for.

noms = {"Pierre", "Paul", "Marie"}

# Parcourir un ensemble avec une boucle for
for element in noms:
    print(element)
# Affiche :
# Pierre
# Paul
# Marie

Vérifier si un élément existe dans un ensemble

Grâce aux conditions, vous pouvez vérifier si un élément est dans un ensemble.

noms = {"Pierre", "Paul", "Marie"}

# Vérifier si un élément est dans un ensemble
if "Paul" in noms:
    print("Oui, Paul est dans l'ensemble")
# Affiche : Oui, Paul est dans l'ensemble

Ajouter ou supprimer un élément

Ajouter

Pour ajouter un élément, il faut utiliser la méthode .add().

noms = {"Pierre", "Paul", "Marie"}

noms.add("Jacques")

print(noms)
# Affiche : {'Pierre', 'Paul', 'Marie', 'Jacques'}

Supprimer

Si vous souhaitez supprimer un élément, il sera nécéssaire de se servir de la méthode .remove().

noms = {"Pierre", "Paul", "Marie"}

noms.remove("Paul")

print(noms)
# Affiche : {'Pierre', 'Marie'}