Lesson 10
Ensembles
1. Qu'est-ce qu'un ensemble
Set en Python est une structure de données équivalente à des ensembles en mathématiques. Il peut être composé de divers éléments; l'ordre des éléments dans un ensemble est indéfini. Vous pouvez ajouter et supprimer des éléments d'un ensemble, vous pouvez parcourir les éléments de l'ensemble, vous pouvez effectuer des opérations standard sur les ensembles (union, intersection, différence). En outre, vous pouvez vérifier si un élément appartient à un ensemble.
Contrairement aux tableaux, où les éléments sont stockés sous forme de liste ordonnée, l'ordre des éléments dans un ensemble est indéfini (de plus, les éléments du jeu ne sont généralement pas stockés dans l'ordre d'apparition dans l'ensemble). que de simplement passer par tous les éléments de l'ensemble).
Tout type de données immuable peut être un élément d'un ensemble: un nombre, une chaîne, un tuple. Les types de données mutables (modifiables) ne peuvent pas être des éléments de l'ensemble. En particulier, list ne peut pas être un élément d'un ensemble (mais un tuple can), et un autre ensemble ne peut pas être un élément d'un ensemble. L'exigence d'immuabilité découle de la façon dont les ordinateurs représentent des ensembles en mémoire.
2. Comment définir un ensemble
Vous pouvez définir un ensemble aussi simple que de nommer tous ses éléments entre parenthèses. La seule exception est l' ensemble vide , qui peut être créé en utilisant la fonction set()
. Si set(..)
a une liste, une chaîne ou un tuple en paramètre, il retournera un ensemble composé de ses éléments. Par exemple,
A = {1, 2, 3} A = set('qwerty') print(A)
imprimera {'e', 'q', 'r', 't', 'w', 'y'}
comme sortie.
L'ordre des éléments est sans importance. Par exemple, le programme
A = {1, 2, 3} B = {3, 2, 3, 1} print(A == B)
affichera True
, car A
et B
sont des ensembles égaux.
Chaque élément peut entrer dans l'ensemble qu'une seule fois. set('Hello')
retourne l'ensemble des quatre éléments: {'H', 'e', 'l', 'o'}
.
3. Opérations avec des éléments
Vous pouvez obtenir le nombre d'éléments dans l'ensemble en utilisant la fonction len
.
Vous pouvez également parcourir tous les éléments de l'ensemble (dans un ordre indéfini!) En utilisant la boucle for
:
primes = {2, 3, 5, 7, 11} for num in primes: print(num)
Vous pouvez vérifier si un élément appartient à un ensemble en utilisant le mot-clé in
: expressions comme a in A
retour une valeur de type bool
. De même, il n'y a not in
opération inverse. Pour ajouter un élément à l'ensemble, il y a la méthode add
:
A = {1, 2, 3} print(1 in A, 4 not in A) A.add(4)
Il existe deux méthodes pour supprimer un élément d'un ensemble: discard
et remove
. Leur comportement varie uniquement dans le cas où l'élément supprimé n'était pas dans l'ensemble. Dans ce cas, la méthode discard
ne fait rien et la méthode remove
renvoie l'exception KeyError
.
Enfin, pop
supprime un élément aléatoire de l'ensemble et renvoie sa valeur. Si l'ensemble est vide, pop
génère l'exception KeyError
.
Vous pouvez transformer un ensemble en liste en utilisant la list
fonctions.
4. Opérations sur des ensembles
Voici comment vous effectuez les opérations bien connues sur les ensembles en Python:
A | B A.union (B) | Retourne un ensemble qui est l'union des ensembles A et B |
A | = B A.update (B) | Ajoute tous les éléments du tableau B à l'ensemble A |
UN B A.intersection (B) | Retourne un ensemble qui est l'intersection des ensembles A et B |
A & = B A.intersection_update (B) | Laisse dans l'ensemble A uniquement les objets qui appartiennent à l'ensemble B |
UN B A.différence (B) | Renvoie la différence de réglage de A et B (les éléments inclus dans A , mais non inclus dans B ). |
A - = B A.différence_update (B) | Supprime tous les éléments de B de l'ensemble A |
A ^ B A.symmetric_difference (B) | Renvoie la différence symétrique des ensembles A et B (les éléments appartenant à A ou B , mais pas aux deux ensembles simultanément). |
A ^ = B A.symmetric_difference_update (B) | Écrit dans A la différence symétrique des ensembles A et B |
A <= B A.issubset (B) | Renvoie true si A est un sous-ensemble de B |
A> = B A.issuperset (B) | Renvoie true si B est un sous-ensemble de A |
A <B | Équivalent à A <= B and A != B |
A> B | Équivalent à A >= B and A != B |