12. Appartenir - set

La théorie des ensembles est une théorie de l’appartenance. Un élément d’un ensemble est dit appartenir à cet ensemble. En Python, l’ensemble est une collection d’objets. Mais contrairement à une liste, ses éléments sont uniques et il n’y a pas le concept d’ordre. Nous allons voir que :

  • l’expression set() est l’ensemble vide,

  • l’ensemble {1, 3, 2} comporte 3 éléments,

  • union(), intersection() et difference() sont des opérations sur des ensembles.

Question

L’expression set('belle') contient




12.1. Un ensemble

Un ensemble est une collection d’objets ayant une propriété commune.

Dans l’exemple suivant, nous dessinons d’abord un cercle de rayon r. Ensuite nous définissons une liste de 10 points à l’aide d’une compréhension de liste. Chaque point est désigné par son indice qui va de 0 à 9.

Nous définissons comme ensemble A les points qui se trouvent à l’intérieur du cercle et nous les affichons en rouge. Les points qui ne font pas partie de l’ensemble A sont affichés en bleu. Nous commençons avec un ensemble vide A = set() et nous ajoutons des éléments avec l’instruction A.add(i).

Exercice : Doublez le nombre des points.

12.2. Diagramme de Venn

Un diagramme de Venn montre graphiquement la relation entre différents ensembles.

Dans l’exemple suivant, nous montrons les 3 situations :

  • les deux ensembles A et B sont disjoints,

  • les deux ensembles A et B ont une intersection non vide,

  • l’ensemble B est totalement inclus dans l’ensemble A.

Exercice : Ajoutez un ensemble C.

12.3. Des éléments uniques

Les éléments d’un ensemble sont uniques. Chaque élément apparait seulement une fois. Le comportement est différent de celui d’une liste, ou des éléments peuvent apparaitre multiple fois.

Exercice : Affichez la longueur de la liste et de l’ensemble.

12.4. Les méthodes set

Voici toutes les méthodes définies pour le type set.

À l’aide d’une liste de compréhension, nous allons afficher seulement les méthodes qui ne commencent pas avec un tiret bas.

Exercice : Affichez aussi les méthodes pour le type dict.

12.5. L’union

L’union de deux ensembles est l’ensemble des éléments qui font partie des deux.

Avec un diagramme de Venn nous représentons l’union des deux ensembles A et B avec la région rose.

Exercice : Ajoutez un ensemble C qui a une intersection non vide avec A et B.

12.6. L’intersection

L’ensemble des éléments qui sont à la fois dans A et dans B constituent l’intersection de A et B.

Dans l’exemple suivant, nous créons une classe Ensemble qui permet de dessiner un diagramme de Venn avec :

  • position x, y

  • rayon r

  • étiquette

La méthode inside(x, y) permet de déterminer si un point (x, y) fait partie de l’ensemble.

Ensuite nous créons des points aléatoires dans toute la surface du canevas. Avec A.inside(x, y) and B.inside(x, y) nous sélectionnons la réunion.

Exercice : Placez les points dans la réunion de A et B.

12.7. La différence

La différence entre deux ensembles A et B sont tous les éléments de A sans ceux de B. En Python, la différence d’ensemble peut être exprimée par la méthode difference() ou bien par l’opérateur - comme montré dans l’exemple suivant.

Il existe aussi une différence symétrique.

12.8. Un sous-ensemble

Un ensemble A est inclus dans un ensemble B si tous les éléments de A sont aussi éléments de B. On dit dans ce cas que A est un sous-ensemble ou une partie de B, ou encore que B est sur-ensemble de A.

12.9. Les opérateurs

En Python, les méthodes pour les ensembles ont des opérateurs plus courts :

  • union (|)

  • intersection (&)

  • différence symétrique (^)

Exercice : Modifiez les ensembles A et B et reévaluez.