Sets - Learn Python 3 - Snakify

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.

Advertising by Google, may be based on your interests

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'} .

Advertising by Google, may be based on your interests

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.

Advertising by Google, may be based on your interests

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
Advertising by Google, may be based on your interests