
Dans cette leçon vidéo en français, le présentateur explique en détail les ensembles (sets) du langage Python. Il commence par définir les ensembles comme des collections non ordonnées d'éléments uniques, en soulignant leur utilité principale : l’élimination des doublons. Il décrit deux façons de créer un ensemble – avec des accolades (sauf pour le vide) et avec la fonction set() à partir d’une autre séquence – et explique la nécessité que les éléments soient hashables. Le cours couvre les opérations de base : ajout (add), suppression (remove), itération, test d’appartenance, ainsi que les principales opérations ensemblistes (union, intersection, différence, différence symétrique, test de sous‑ensemble) avec leurs équivalents opérateurs. Enfin, il montre un exemple concret où un texte est normalisé (mise en minuscules, suppression de la ponctuation), découpé en mots, puis les doublons sont éliminés à l’aide d’un set pour compter la fréquence de chaque mot. Le présentateur insiste sur les bonnes pratiques (affichage intermédiaire, vérification du résultat) et encourage le spectateur à reproduire l’exemple pour consolider les acquis.
Chapters
Bonjour à tous et bienvenue dans cette nouvelle leçon sur le langage de programmation Python. Aujourd'hui, nous allons voir les ensembles. Un ensemble, connu aussi sous le nom de set, est une structure de données qui renferme plusieurs valeurs comme les autres séquences et itérables que nous avons vues jusqu'ici, en l'occurrence les listes et les tuples. Les éléments qui constituent un ensemble sont uniques. C'est-à-dire qu'ils ne peuvent pas figurer plusieurs fois dans la structure. En plus, ils ne sont pas ordonnés, donc ne peuvent pas être accessibles par des indices comme c'est le cas pour les listes, les tuples ou les chaînes de caractères. Vous vous demandez certainement à quoi pourraient servir les ensembles puisqu'il est clair que les autres séquences sont plus efficaces pour gérer les données multiples, en l'occurrence les listes. En effet, les ensembles servent souvent à éliminer les doublons qui figurent dans une autre séquence. L'élimination des doublons est une tâche très sollicitée dans de nombreuses situations. Nous allons voir un exemple pratique à la fin de cette vidéo. Pour créer un ensemble, on peut procéder de 2 façons différentes. La première méthode consiste à utiliser les accolades où on place les éléments voulus séparés par des virgules comme ceci. Si on affiche le type de la variable s, l'interpréteur donne Set qui signifie ensemble. Notez que cette méthode ne permet pas de créer un ensemble vide. En effet, si on fait ceci, on aura un dictionnaire et non pas un ensemble. Nous traiterons les dictionnaires prochainement. La deuxième méthode consiste à créer un ensemble à partir d'une autre structure. Supposons que l'on a créé une liste du nom de lst. Pour créer un ensemble à partir de cette liste, on fait appel au mot-clé set comme ceci. Si on affiche la variable S, alors on aura la forme conventionnelle d'un ensemble, c'est-à-dire les éléments entourés de deux accolades ouvrantes et fermantes. Remarquez que le nombre 4 ne figure qu'une seule fois dans l'ensemble résultant. Si on remplace la liste par un tuple identifié par t, alors on obtient exactement le même résultat qu'avant. Figurez-vous que l'ordre des éléments de l'ensemble peut changer, mais ça n'a aucune importance, car l'ensemble est par définition une structure non ordonnée. Maintenant, on initialise une chaîne de caractères identifiée par str. Comme pour les exemples précédents, on fait appel au mot-clé set, ce qui donne lieu à un ensemble constitué des éléments de la chaîne. Là encore, vous constatez que la lettre O qui figure normalement 2 fois dans la chaîne ne figure qu'une seule fois dans l'ensemble. Si on veut créer un ensemble vide, alors on fait appel au mot-clé set et on ne met rien entre les parenthèses. Comme pour les autres structures, il est possible de mettre des éléments de types différents dans un ensemble comme ceci: L'ensemble S contient un tuple, une chaîne, un intervalle ou range et un booléen. Notez qu'un ensemble peut être constitué uniquement d'éléments dits hashables, c'est-à-dire susceptibles d'être calculés à l'aide d'algorithmes de hachage. Je ne vais pas trop expliquer ce point car il nécessite la compréhension d'autres aspects plus avancés, mais ne commettez jamais l'erreur de placer une liste en tant qu'élément d'un ensemble, car ça va générer une erreur. Il est possible d'ajouter des éléments à un ensemble, pourvu qu'ils ne soient pas dupliqués. Pour ce faire, on invoque la méthode Add comme ceci. Il est également possible de supprimer un élément de l'ensemble à l'aide de la méthode Remove. Notez qu'on parle d'éléments et non pas d'indices ou de positions, car la notion d'indice n'existe même pas dans les ensembles vu qu'ils sont des structures non ordonnées. Un ensemble est une structure itérable, donc on peut la parcourir à l'aide de boucles comme ceci. Bien évidemment, il est possible de vérifier si un élément figure dans l'ensemble à l'aide de l'opérateur d'appartenance. Supposons que l'on dispose de 2 ensembles S1 et S2 initialisés de cette façon. On peut générer un autre ensemble du nom de S qui contiendra à la fois les éléments de S1 et de S2 en invoquant la méthode union comme ceci. Bien entendu, on peut appliquer la méthode union à un ensemble vide et on obtiendra exactement le même résultat. Notez que l'ordre des éléments n'est pas important et peut changer selon la situation, mais le plus important c'est que l'ensemble S contient toujours des éléments uniques sans duplication. On peut remplacer la méthode union par l'opérateur barre verticale comme ceci. Si on veut que l'ensemble S contienne les éléments communs aux ensembles S1 et S2, alors on fait appel à la méthode intersection. Dans ce cas, les éléments retenus sont 4 et 9 parce qu'ils figurent à la fois dans S1 et S2. On peut remplacer la méthode intersection par le symbole esperluette comme ceci. La méthode difference permet de générer un ensemble qui contient les éléments du premier ensemble qui ne figurent pas dans le deuxième ensemble comme ceci. Dans ce cas, on retient l'élément 2 car il figure dans l'ensemble 1 et non pas dans l'ensemble 2. Si on échange les ensembles, dans ce cas on retient 5 et 8. On peut remplacer la méthode difference par le symbole moins comme ceci. Si on veut retenir en même temps 2, 5 et 8, c'est-à-dire les éléments qui figurent dans un ensemble et non pas dans l'autre, peu importe l'ensemble sur lequel on applique la méthode, alors on invoque la méthode symmetric_difference. La méthode IsSubset permet de vérifier si un ensemble est un sous-ensemble de l'autre, c'est-à-dire si tous les éléments de l'ensemble 1 figurent dans l'ensemble 2. La méthode IsSubset retourne un booléen. Si on fait ceci, on obtient False car pas tous les éléments de l'ensemble 1 figurent dans l'ensemble 2. Mais si on ajoute l'élément 2 à S2, alors on obtient True. Encore une fois, L'ordre des éléments ne compte pas. Comme il a été mentionné au début de cette vidéo, les ensembles sont surtout utiles si on veut éliminer les doublons d'une séquence, comme une liste ou un tuple. Nous allons donc faire un exemple qui traite ce genre de problème très courant dans de nombreux domaines comme le traitement du langage naturel ou NLP, qui est un domaine de l'intelligence artificielle. Imaginez que l'on dispose d'un texte et on souhaite savoir combien de fois chaque mot apparaît-il dans celui-ci. À titre d'exemple, si on a la chaîne de caractères Merci à tous et à bientôt, on affichera à l'écran Merci figure 1 fois, à figure 2 fois, tous figure 1 fois, et figure 1 fois, bientôt figure 1 fois. Remarquez que nous avons affiché à une seule fois mais avec une fréquence de 2, car il figure 2 fois dans le texte. Donc, je présume que vous avez compris pour quelle finalité nous utiliserons les ensembles. Justement pour éliminer les doublons au moment de l'affichage. On commence par initialiser une chaîne de caractères pour le test. Il s'agit d'un texte que j'ai copié de la page d'accueil de mon site web. Si la chaîne occupe plusieurs lignes, alors il faut la délimiter par des triples simples quotes ou doubles quotes comme on a vu avant. Vous pouvez si vous voulez remplacer cette chaîne statique par une chaîne qui sera saisie par l'utilisateur en utilisant la fonction input. La première opération consiste à transformer notre texte en minuscule. De cette façon, on évite que le même mot soit pris pour 2 mots différents parce qu'il est écrit avec une casse différente. Le fait de vérifier le résultat d'exécution de chaque segment du code en cours de saisie est une bonne pratique en programmation. Moi, je vais juste afficher mes variables au fur et à mesure pour être sûr que mes traitements tiennent la route. Nous allons ensuite supprimer les caractères indésirables et qui pourraient fausser notre traitement comme les marques de ponctuation, les apostrophes, les parenthèses, etc. Donc nous créons une chaîne qui contient tous ces symboles-là et que l'on nommera sup. Maintenant, on va remplacer chacun de ces symboles par un espace au cas où ils figurent dans la chaîne initiale. Donc nous allons parcourir la chaîne sup à l'aide de la boucle For afin de remplacer chaque occurrence par un espace. Si on affiche str, on constate que les marques de ponctuation ont disparu. Maintenant, on va diviser notre chaîne au niveau des espaces blancs à l'aide de la méthode split qu'on a vue dans la vidéo consacrée aux chaînes de caractères. De cette façon, on crée une liste nommée lst et qui contient tous les mots de notre chaîne initiale. Vu qu'il y aura forcément des mots qui se répètent dans la chaîne, il par conséquent dans la liste lst, alors nous allons éliminer ce doublon-là en transformant notre liste en un ensemble que l'on appellera S. Maintenant que les doublons ont été éliminés, il serait mieux de retransformer notre ensemble en liste encore une fois. Notez que cette opération est facultative, mais j'ai décidé de l'exécuter afin de trier les mots dans l'ordre alphabétique, vu que l'ordre d'un ensemble peut changer à chaque fois. J'ai opté pour l'identifiant L pour notre liste. Ensuite, on procède au tri de la liste L à l'aide de la méthode sort. Maintenant, c'est au tour de l'opération la plus importante, c'est-à-dire celle qui permet d'afficher la fréquence des mots dans le texte initial. Pour ce faire, on va juste parcourir notre liste L à l'aide de la boucle For, puis on affiche le nombre de fois que chaque élément de la liste L figure dans la liste lst à l'aide de la méthode count. Pour l'affichage, j'ai opté pour une chaîne de caractères formatée à l'aide de la méthode format. Je vous conseille de refaire cet exemple en essayant de changer d'approche afin de mieux consolider vos acquis et savoir comment combiner toutes les notions que nous avons vues jusqu'ici. Merci pour votre attention et à la vidéo prochaine.
More from Yamossoun

Algorithme de calcule de la racine carrée par dichotomie #dichotomy #squareroot #algorithm









