Opérations dans les ensembles

Les ensembles (sets) en Python fournissent un certain nombre d'opérations qui peuvent être effectuées sur eux. Cela inclut l'union, l'intersection, la différence, et la différence symétrique.

Union ➜ .union()

L'union d'un ensemble a avec un ensemble b est l'ensemble de tous les éléments.

a = {1, 3, 4}
b = {2, 7, 5}

print(a.union(b))
# Affiche : {1, 2, 3, 4, 5, 7}

Notez que la règle de l'unicité des éléments est toujours d'actualité. Je vais ajouter plusieurs 3 dans l'exemple du dessus.

a = {1, 3, 3, 4}
b = {2, 7, 3, 5}

print(a.union(b))
# Affiche : {1, 2, 3, 4, 5, 7}

Le résultat ne change pas car Python à automatiquement supprimé les doublons car nous manipulons des ensembles.

Intersection ➜ .intersection()

L'intersection est une opération sur deux ensembles qui renvoie un nouvel ensemble contenant uniquement les éléments qui se trouvent dans les deux ensembles.

a = {1, 2, 3, 4}
b = {2, 5, 8, 3}

print(a.intersection(b))
# Affiche : {2, 3}

Différence ➜ .difference()

La différence d'un ensemble a avec un ensemble b est l'ensemble des éléments qui sont dans a mais pas dans b.

a = {1, 2, 3, 4}
b = {2, 5, 8, 3}

print(a.difference(b))
# Affiche : {1, 4}

Dans notre exemple, dans l'ensemble de a, 1 et 4 ne sont pas présents dans b alors que 2, 3 apparaissent également dans b. C'est pour cette raison que Python affiche le résultat suivant : {1, 4}.

Différence symétrique ➜ .symmetric_difference()

La différence symétrique d'un ensemble a avec un ensemble b est l'ensemble des éléments qui sont dans l'un des ensembles, mais pas dans les deux.

Vous vous demandez, peut-être qu'elle la différence avec la méthode .difference(). Vous allez comprendre grâce à l'exemple.

a = {1, 2, 3, 4}
b = {2, 5, 8, 3}

print(a.symmetric_difference(b))
# Affiche : {1, 4, 5, 8}

Vous avez vu 😄 ! Cette fois-ci, Python détecte toutes les différences, c'est à dire ceux de a et ceux de b.

Particularité des opérations

Nous avons utilisé plusieurs méthodes intéressantes. Par contre, n'oubliez qu'elles ne modifient le ou les ensembles en question mais elle renvoie un nouvel ensemble modifié.

Dans nos différents exemples, nous avons utiliser directement la fonction print(). Mais il est tout a fait possible d'enregistrer le résultat dans une variable.

Exemple

a = {1, 2, 3, 4}
b = {2, 5, 8, 3}

resultat = a.symmetric_difference(b)

print(resultat)
# Affiche : {1, 4, 5, 8}