Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révisionLes deux révisions suivantes | ||
python:bases:ensembles [2021/06/30 20:54] – [Quiz] phil | python:bases:ensembles [2022/09/03 10:29] – [2.1 Création en extension] phil | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | [[python: | ||
+ | [[: | ||
+ | [[: | ||
+ | ===== Python - Ensembles (set) ===== | ||
+ | |||
+ | [Mise à jour le : 30/ | ||
+ | |||
+ | * **Sources** | ||
+ | * **Documentation** sur Python.org : < | ||
+ | |||
+ | * ** Mots-clés** : ensemble, mutable, immuable, union, intersection, | ||
+ | |||
+ | <callout type=" | ||
+ | |||
+ | | and | continue | ||
+ | | as | ||
+ | | assert | ||
+ | | __async__ | ||
+ | | __await__ | ||
+ | | break | except | ||
+ | | class | __False__ | ||
+ | |||
+ | * < | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== 1. Introduction ==== | ||
+ | Proche des dictionnaires, | ||
+ | |||
+ | <callout type=" | ||
+ | |||
+ | ==== 2. Création ==== | ||
+ | === 2.1 Création en extension === | ||
+ | |||
+ | <callout type=" | ||
+ | |||
+ | // Exemple 1 // : avec des accolades | ||
+ | |||
+ | <code python *.py> | ||
+ | # Un set sur une liste élimine les doublons | ||
+ | ensemble = {' | ||
+ | print(ensemble) # Résultat : {' | ||
+ | </ | ||
+ | |||
+ | // Exemple 2 // : avec la fonction set() | ||
+ | |||
+ | <code python *.py> | ||
+ | # Un set sur une liste élimine les doublons | ||
+ | ensemble = set([' | ||
+ | print(ensemble) # Résultat : {' | ||
+ | </ | ||
+ | |||
+ | === 2.1 Création d'un ensemble vide === | ||
+ | <callout type=" | ||
+ | |||
+ | //Exemple// | ||
+ | |||
+ | <code python *.py> | ||
+ | ensemble_vide = set() | ||
+ | # ou | ||
+ | ensemble_vide = set([]) | ||
+ | </ | ||
+ | |||
+ | ==== 3. Eléments dans un ensemble ==== | ||
+ | |||
+ | <callout icon=" | ||
+ | |||
+ | ==== 4. Fonction native Frozenset ==== | ||
+ | Source < | ||
+ | |||
+ | <callout type=" | ||
+ | |||
+ | |||
+ | ==== 5. Opérations ==== | ||
+ | |||
+ | === 5.1 Test d' | ||
+ | |||
+ | <code python *.py> | ||
+ | a = {' | ||
+ | ' | ||
+ | 6 in a # Résultat : False | ||
+ | </ | ||
+ | |||
+ | <callout type=" | ||
+ | |||
+ | === 5.2 Cardinal === | ||
+ | * **Nombre d' | ||
+ | <code python *.py> | ||
+ | a = {' | ||
+ | len(a) # Résultat : 4 | ||
+ | </ | ||
+ | |||
+ | |||
+ | === 5.3 Manipulations === | ||
+ | |||
+ | * **Suppression des doublons dans une liste** | ||
+ | |||
+ | <code python *.py> | ||
+ | a = {[' | ||
+ | print(a) | ||
+ | </ | ||
+ | |||
+ | * **Vidage** | ||
+ | <code python *.py> | ||
+ | # pour nettoyer | ||
+ | a = {' | ||
+ | a.clear() # Résultat : set() | ||
+ | </ | ||
+ | |||
+ | * **Ajout d'un élément** | ||
+ | <code python *.py> | ||
+ | # ajouter un élément | ||
+ | a = {' | ||
+ | a.add(1) # Résultat : {1, (1, 2, 3), 12, ' | ||
+ | </ | ||
+ | |||
+ | * **Mise à jour d'un ensemble avec un autre ensemble** | ||
+ | <code python *.py> | ||
+ | # ajouter tous les éléments d'un autre ensemble | ||
+ | a = {' | ||
+ | a.update({2, | ||
+ | </ | ||
+ | |||
+ | * **Suppression d'un élément** | ||
+ | <code python *.py> | ||
+ | # enlever un élément avec discard | ||
+ | a = {2, (1, 3, 5), ' | ||
+ | a.discard((1, | ||
+ | </ | ||
+ | |||
+ | <callout type=" | ||
+ | |||
+ | <code python *.py> | ||
+ | # enlever un élément avec remove | ||
+ | a = {2, (1, 3, 5), ' | ||
+ | a.remove(' | ||
+ | </ | ||
+ | |||
+ | <callout icon=" | ||
+ | |||
+ | <code python *.py> | ||
+ | # pop() ressemble à la méthode éponyme sur les listes | ||
+ | # sauf qu'il n'y a pas d' | ||
+ | a = {2, (1, 3, 5), ' | ||
+ | while a: | ||
+ | a = a.pop() | ||
+ | print(" | ||
+ | print(" | ||
+ | |||
+ | # Résultat | ||
+ | # element 2 | ||
+ | # element (1, 3, 5) | ||
+ | # element pierre | ||
+ | # element (1, 2, 3) | ||
+ | # element 12 | ||
+ | # element marc | ||
+ | # l' | ||
+ | </ | ||
+ | |||
+ | === 5.4 Opérations sur les ensembles === | ||
+ | <callout type=" | ||
+ | Ces opérateurs sont également disponibles sous la forme de méthodes.</ | ||
+ | |||
+ | * **Union** | ||
+ | |||
+ | <code python *.py> | ||
+ | A1 = set([0, 2, 4, 6]) | ||
+ | A2 = set([0, 6, 3]) | ||
+ | A1 | A2 # Résultat : {0, 2, 3, 4, 6} | ||
+ | </ | ||
+ | |||
+ | |||
+ | * **Intersection** | ||
+ | |||
+ | <code python *.py> | ||
+ | A1 = set([0, 2, 4, 6]) | ||
+ | A2 = set([0, 6, 3]) | ||
+ | A1 & A2 # Résultat : {0, 6} | ||
+ | </ | ||
+ | |||
+ | * **Différence** | ||
+ | |||
+ | <code python *.py> | ||
+ | A1 = set([0, 2, 4, 6]) | ||
+ | A2 = set([0, 6, 3]) | ||
+ | A1 - A2 # Résultat : {2, 4} | ||
+ | </ | ||
+ | |||
+ | * **Différence symétrique** | ||
+ | |||
+ | <callout type=" | ||
+ | |||
+ | <code python *.py> | ||
+ | A1 = set([0, 2, 4, 6]) | ||
+ | A2 = set([0, 6, 3]) | ||
+ | A1 ^ A2 # Résultat : {2, 3, 4} | ||
+ | </ | ||
+ | |||
+ | |||
+ | === 5.5 Comparaisons === | ||
+ | |||
+ | * **Egalité** | ||
+ | |||
+ | <code python *.py> | ||
+ | a = {' | ||
+ | b = set([' | ||
+ | a==b # Résultat : True | ||
+ | </ | ||
+ | |||
+ | * **Inclusion** | ||
+ | |||
+ | <code python *.py> | ||
+ | a = {0, 1, 2, 3} | ||
+ | b = {1, 3} | ||
+ | b <= a # Résultat : True | ||
+ | </ | ||
+ | |||
+ | <code python *.py> | ||
+ | a = {0, 1, 2, 3} | ||
+ | b = {1, 3} | ||
+ | b < a # Résultat : True | ||
+ | </ | ||
+ | |||
+ | * **Ensembles disjoints** | ||
+ | |||
+ | <code python *.py> | ||
+ | a = {0, 1, 2, 3} | ||
+ | b = {' | ||
+ | a.isdisjoint(b) # Résultat : True | ||
+ | </ | ||
+ | |||
+ | {{ : | ||
+ | ==== Quiz ==== | ||
+ | * **Real Python** : < |