Python Language Définir les opérations en utilisant des méthodes et des intégrations


Exemple

Nous définissons deux ensembles a et b

>>> a = {1, 2, 2, 3, 4}
>>> b = {3, 3, 4, 4, 5}

REMARQUE: {1} crée un ensemble d'un élément, mais {} crée un dict vide. La manière correcte de créer un ensemble vide est set() .

Intersection

a.intersection(b) renvoie un nouvel ensemble avec des éléments présents à la fois dans a et b

>>> a.intersection(b)
{3, 4}

syndicat

a.union(b) renvoie un nouvel ensemble avec des éléments présents dans a et b

>>> a.union(b)
{1, 2, 3, 4, 5}

Différence

a.difference(b) renvoie un nouvel ensemble avec des éléments présents dans a mais pas dans b

>>> a.difference(b)
{1, 2}
>>> b.difference(a)
{5}

Différence symétrique

a.symmetric_difference(b) renvoie un nouvel ensemble avec des éléments présents dans a ou b mais pas dans les deux

>>> a.symmetric_difference(b)
{1, 2, 5}
>>> b.symmetric_difference(a)
{1, 2, 5}

NOTE : a.symmetric_difference(b) == b.symmetric_difference(a)

Sous-ensemble et superset

c.issubset(a) teste si chaque élément de c est dans a .

a.issuperset(c) teste si chaque élément de c est dans a .

>>> c = {1, 2}
>>> c.issubset(a)
True
>>> a.issuperset(c)
True

Ces dernières opérations ont des opérateurs équivalents comme indiqué ci-dessous:

Méthode Opérateur
a.intersection(b) a & b
a.union(b) a | b
a.difference(b) a - b
a.symmetric_difference(b) a ^ b
a.issubset(b) a <= b
a.issuperset(b) a >= b

Ensembles disjoints

Les ensembles a et d sont disjoints si aucun élément dans a n'est également dans d et vice versa.

>>> d = {5, 6}
>>> a.isdisjoint(b) # {2, 3, 4} are in both sets
False
>>> a.isdisjoint(d)
True

# This is an equivalent check, but less efficient
>>> len(a & d) == 0
True

# This is even less efficient
>>> a & d == set()
True

Test d'adhésion

La commande interne in les recherches de mots clés pour occurances

>>> 1 in a
True
>>> 6 in a
False

Longueur

La fonction intégrée len() renvoie le nombre d'éléments de l'ensemble

>>> len(a)
4
>>> len(b)
3