Contenu de la page http://www.python-simple.com/python-langage/set.php

Publié le mercredi 9 novembre 2022 09:06 - Mis à jour le mercredi 9 novembre 2022 09:06

Sets

Un set est un ensemble de clefs non ordonnées et non redondant où l'on peut savoir si un élément est présent sans avoir à parcourir toute la liste (une sorte de dictionnaire où les valeurs seraient ignorées, seules les clefs comptent).
Un set peut avoir comme élément None.
Set :
  • s = set(['a', 'b', 'c']) : définition d'un set.
  • s = set() : initialisation d'un set avec aucun élément.
  • s = frozenset(['a', 'b', 'c']) : définition d'un set non modifiable.
  • on peut aussi définir de cette manière un set : {'a', 'b', 'c'}
  • set de compréhension : {x for x in range(5)}
  • test si un élément appartient au set : 'a' in s (on peut aussi faire : 'a' not in s).
  • on peut aussi faire un set de lettres à partir d'une string : s = set('acbde')
  • ajout d'un élément : s.add('d').
  • retrait d'un élément : s.remove('d') (donne une exception KeyError si non présent).
  • retrait d'un élément s'il existe : s.discard('d').
  • pour enlever un élément au hasard et le renvoyer : s.pop()
  • pour récupérer un élément au hasard sans l'enlever : iter(s).next()
  • pour effacer tous les éléments au hasard et le renvoyer : s.clear()
  • pour boucler sur les éléments d'un set : for x in set:
  • nombre d'éléments du set : len(s)
  • autres fonctions des set :
    • s.isdisjoint(s2)
    • s.issubset(s2)
    • s.issuperset(s2)
    • s <= s2 : inclusion (pareil avec s >= s2).
    • s < s2 : inclusion stricte (pareil avec s >= s2).
    • s.union(s2) : n'affecte pas les sets de départ (on peut aussi faire s | s2).
    • set.union(s1, s2, s3) : renvoie la réunion de différents sets (utile quand plus que 2).
    • s.intersection(s2) (on peut aussi faire s & s2).
    • set.intersection(s1, s2, s3) : renvoie l'intersection de différents sets (utile quand plus que 2)
    • s1 & s2 & s3 : permet aussi de faire l'intersection de multiples sets.
    • s1 | s2 | s3 : permet de faire le réunion de multiples sets.
    • s.difference(s2) (on peut aussi faire s - s2).
    • s.symmetric_difference(s2) (on peut aussi faire s ^ s2).
    • s.copy() : renvoie une shallow copy.
    • union, intersection, difference, symmetric_difference, issubset, issuperset acceptent des listes en arguments, mais pas leur équivalents avec un symbole.
    • s.update(s2) : rajoute les éléments à s et modifie s (on peut aussi faire s |= s2). On peut aussi donner un argument une liste : s.update(myList)
    • s.intersection_update(s2) : fait l'intersection et modifie s (on peut aussi faire s &= s2).
    • s.difference_update(s2) : fait la différence et modifie s (on peut aussi faire s -= s2).
    • s.symmetric_difference_update(s2) : fait la différence symétrique et modifie s (on peut aussi faire s ^= s2).
Pour convertir les clefs d'un dictionnaire en set :
  • mySet = set(myDict.keys())
  • ou même : mySet = set(myDict)