Aller au contenu

Set (ensemble)

Un set est une collection non ordonnée et non indexée. On ne peut pas modifier un item, mais on peut en ajouter.

Créer un set:
>>> un_set = {"alpha", "beta", "gamma"}
>>> un_set
{'alpha', 'beta', 'gamma'}
>>> type(un_set)
<class 'set'>
>>> autre_set = {"alpha", "beta", "gamma", "beta", "alpha"}
>>> len(autre_set)
3
>>> autre_set
{'beta', 'alpha', 'gamma'}
# Constructor set()
>>> un_set = set(("alpha", "beta", "gamma"))
>>> un_set
{'gamma', 'alpha', 'beta'}
Ajouter un item:
>>> un_set = {"alpha", "beta", "gamma"}
>>> un_set.add("delta")
>>> un_set
{'gamma', 'alpha', 'beta', 'delta'}
Ajouter plusieurs items:
>>> un_set = {"alpha", "beta", "gamma"}
>>> un_set.update(["delta","zeta","epsilon"])
>>> un_set
{'zeta', 'alpha', 'beta', 'delta', 'gamma', 'epsilon'}
Longueur d'un set:
>>> un_set = {"alpha", "beta", "gamma"}
>>> print(len(un_set))
3
Supprimer un item (remove):
>>> un_set = {"alpha", "beta", "gamma"}
>>> un_set.remove("beta")
>>> un_set
{'gamma', 'alpha'}

# Si on retire un élément qui n'existe pas => Erreur
>>> un_set.remove("delta")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'delta'
Supprimer un item (discard):
>>> un_set = {"alpha", "beta", "gamma"}
>>> un_set.discard("beta")
>>> un_set
{'gamma', 'alpha'}

# Si on retire un élément qui n'existe pas.
>>> un_set = {"alpha", "beta", "gamma"}
>>> un_set.discard("delta")
>>> un_set
{'alpha', 'gamma', 'beta'}
Vider un set:
>>> un_set = {"alpha", "beta", "gamma"}
>>> un_set.clear()
>>> un_set
set()
Supprimer un set:
>>> del un_set
>>> un_set
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'un_set' is not defined
Boucle:
un_set = {"alpha", "beta", "gamma"}
for x in un_set:
    print(x)

alpha
beta
gamma
Test si un item est présent dans le set:
un_set = {"alpha", "beta", "gamma"}
print("alpha" in un_set)

True
Set => pas d'indice:
>>> un_set = {"alpha", "beta", "gamma"}
>>> un_set[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'set' object does not support indexing
Opérateurs:
  • a | b (union),
  • a & b (intersection),
  • a - b (différence),
  • a ^ b (différence symétrique)

Méthodes:

Méthodes Description
add()
clear()
copy()
difference()
difference_update()
discard()
intersection()
intersection_update()
isdisjoint()
issubset()
issuperset()
pop()
remove()
symmetric_difference()
symmetric_difference_update()
union()
update()

Dernière mise à jour: May 12, 2019