> Les bases > Le langage > Sets
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').
- 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)
- 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.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)
Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert