set.difference()

Renvoie un nouvel ensemble avec les éléments du premier ensemble qui ne sont pas dans les autres.

Renvoie
Un nouvel ensemble.
Modifie l’original
Non
Sur cette page

Exemple

#
Python
module_tasks = {"1_1", "1_2", "1_3", "1_4", "1_5"}
done = {"1_1", "1_3"}

todo = module_tasks.difference(done)
print(sorted(todo))
print(sorted(done - module_tasks))
Résultatrésultat enregistré, vous pouvez le vérifier
['1_2', '1_4', '1_5']
[]

Définition et utilisation

#

La méthode difference() renvoie la différence d’ensembles : les éléments de l’ensemble sur lequel on l’appelle, moins tout ce qui apparaît dans les collections données. L’ordre compte, car a - b est en général différent de b - a.

L’opérateur - donne le même résultat pour deux ensembles. La méthode accepte aussi des listes et d’autres collections, ainsi que plusieurs arguments à la fois.

Une opération apparentée est la différence symétrique, la méthode symmetric_difference() ou l’opérateur ^. Elle renvoie les éléments qui appartiennent à exactement un seul des deux ensembles. Les versions sur place sont difference_update() et -=.

Syntaxe

#
Syntaxe
ensemble.difference(*others)
ensemble - autre

Paramètres

#
  • *others

    des ensembles ou d’autres collections

    Les collections dont les éléments seront soustraits.

Plus d’exemples

#
Différence simple et symétrique
Python
léa = {"HTML", "CSS", "Python"}
lucas = {"Python", "React"}

print(sorted(léa - lucas))
print(sorted(lucas - léa))
print(sorted(léa ^ lucas))
Résultatrésultat enregistré, vous pouvez le vérifier
['CSS', 'HTML']
['React']
['CSS', 'HTML', 'React']
Soustraire une liste d’un ensemble
Python
words = ["python", "et", "listes", "avec", "python", "ensembles"]
stop_words = ["et", "avec", "plus"]

print(sorted(set(words).difference(stop_words)))
Résultatrésultat enregistré, vous pouvez le vérifier
['ensembles', 'listes', 'python']

Bonnes pratiques

#
  • Retenez l’ordre : a - b renvoie ce qui est dans a mais pas dans b.
  • Une différence d’ensembles perd l’ordre et les doublons. Quand cela compte, filtrez plutôt la liste : [x for x in items if x not in blocked], où blocked est un ensemble.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.