Les ensembles en Python sont des collections non ordonnées d’éléments uniques. Cela signifie que les valeurs dupliquées sont automatiquement éliminées, et l’ordre dans lequel vous ajoutez les éléments n’affecte pas leur stockage ou leur récupération. Les ensembles sont mutables (modifiables) par défaut, sauf si vous utilisez le type frozenset
, qui est immuable.
Les ensembles sont particulièrement utiles pour les tâches nécessitant un test d’appartenance efficace (vérification de l’existence d’un élément), la suppression des doublons d’une liste et l’exécution d’opérations ensemblistes telles que l’union, l’intersection et la différence.
Table des matières
- Création d’ensembles
- Ajout et mise à jour d’éléments
- Suppression d’éléments
- Opérations ensemblistes
- Méthodes des ensembles
- Autres opérations ensemblistes
- Fonctions intégrées avec les ensembles
- Ensembles figés (frozensets)
1. Création d’ensembles
Vous pouvez créer des ensembles à l’aide d’accolades {}
ou du constructeur set()
. Notez qu’un ensemble vide doit être créé à l’aide de set()
; {}
crée un dictionnaire vide.
# Utilisation d'accolades
my_set = {1, 2, 3, 4, 5}
print(my_set) # Sortie : {1, 2, 3, 4, 5}
# Utilisation du constructeur set()
another_set = set([6, 7, 8, 8]) # Les doublons sont automatiquement supprimés
print(another_set) # Sortie : {8, 6, 7}
empty_set = set()
print(empty_set) # Sortie : set()
N’oubliez pas que les ensembles ne sont pas ordonnés, donc l’ordre de sortie peut différer de l’ordre d’entrée.
2. Ajout et mise à jour d’éléments
Utilisez la méthode add()
pour ajouter un seul élément et la méthode update()
pour ajouter plusieurs éléments.
my_set = {1, 2, 3}
my_set.add(4)
print(my_set) # Sortie : {1, 2, 3, 4}
my_set.update([5, 6, 7])
print(my_set) # Sortie : {1, 2, 3, 4, 5, 6, 7}
my_set.update({8, 9}, (10,)) # Mise à jour avec un ensemble et un tuple
print(my_set) # Sortie : {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
3. Suppression d’éléments
Plusieurs méthodes permettent la suppression d’éléments. remove()
lève une exception KeyError
si l’élément n’est pas trouvé, tandis que discard()
ne le fait pas.
my_set = {1, 2, 3, 4, 5}
my_set.remove(3) # Lève une KeyError si l'élément n'est pas trouvé
print(my_set) # Sortie : {1, 2, 4, 5}
my_set.discard(6) # Ne lève pas d'erreur si l'élément n'est pas trouvé
print(my_set) # Sortie : {1, 2, 4, 5}
removed_element = my_set.pop() # Supprime et renvoie un élément arbitraire
print(removed_element) # Sortie : (un élément aléatoire)
print(my_set)
my_set.clear() # Supprime tous les éléments
print(my_set) # Sortie : set()
4. Opérations ensemblistes
Les ensembles prennent en charge les opérations ensemblistes mathématiques standard :
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# Union : combine les éléments des deux ensembles
union_set = set1 | set2 # ou set1.union(set2)
print(union_set) # Sortie : {1, 2, 3, 4, 5}
# Intersection : éléments présents dans les deux ensembles
intersection_set = set1 & set2 # ou set1.intersection(set2)
print(intersection_set) # Sortie : {3}
# Différence : éléments dans set1 mais pas dans set2
difference_set = set1 - set2 # ou set1.difference(set2)
print(difference_set) # Sortie : {1, 2}
# Différence symétrique : éléments dans set1 ou set2, mais pas les deux
symmetric_difference_set = set1 ^ set2 # ou set1.symmetric_difference(set2)
print(symmetric_difference_set) # Sortie : {1, 2, 4, 5}
5. Méthodes des ensembles
Python offre de nombreuses méthodes intégrées pour la manipulation des ensembles :
my_set = {1, 2, 3, 4, 5}
print(my_set.issubset({1, 2, 3, 4, 5, 6})) # True
print(my_set.issuperset({1, 2})) # True
print(my_set.isdisjoint({6, 7, 8})) # True - aucun élément commun
print(my_set.copy()) # crée une copie superficielle de l'ensemble
6. Autres opérations ensemblistes
Au-delà des opérations de base, vous pouvez vérifier l’appartenance, trouver la longueur, et plus encore :
my_set = {1, 2, 3}
print(1 in my_set) # Sortie : True
print(4 not in my_set) # Sortie : True
print(len(my_set)) # Sortie : 3
7. Fonctions intégrées avec les ensembles
Des fonctions comme all()
, any()
, sum()
, min()
, max()
fonctionnent avec les ensembles :
my_set = {1, 2, 3, 4, 5}
print(sum(my_set)) # Sortie : 15
print(min(my_set)) # Sortie : 1
print(max(my_set)) # Sortie : 5
print(all(x > 0 for x in my_set)) # Sortie : True
print(any(x == 0 for x in my_set)) # Sortie : False
8. Ensembles figés (frozensets)
frozenset
crée un ensemble immuable. Une fois créé, vous ne pouvez pas ajouter ou supprimer d’éléments. Ils sont utiles comme clés de dictionnaire ou éléments d’autres ensembles.
my_frozenset = frozenset({1, 2, 3})
# my_frozenset.add(4) # Cela lèvera une AttributeError
print(my_frozenset) # Sortie : frozenset({1, 2, 3})