Dans cette leçon vidéo, le présentateur explique les tuples en Python, les présentant comme des séquences immuables similaires aux listes mais ne pouvant pas être modifiées après création. Il décrit les différentes manières de créer un tuple (valeurs séparées par des virgules, usage optionnel de parenthèses, nécessité d’une virgule pour un tuple à un seul élément) et montre comment convertir d’autres séquences (listes, chaînes) en tuples via le transtypage. Le cours détaille les opérations supportées par les tuples – len, index, count, opérateur d’appartenance, concaténation et répétition – ainsi que les limites dues à l’immuabilité (absence de sort, reverse, pop, remove, etc.) et la technique de contourner ces limites en castant le tuple en liste, en modifiant la liste, puis en le reconvertissant en tuple. Il illustre l’itération avec une boucle for et souligne quand privilégier les listes plutôt que les tuples. La vidéo se conclut en rappelant que les tuples seront réutilisés plus tard dans la série pour exploiter leur potentiel.
Chapters
Bonjour à tous et bienvenue dans cette nouvelle leçon sur le langage de programmation Python. Aujourd'hui nous allons voir les tuples. Jusqu'ici nous avons vu quelques structures de données qui font partie des séquences, à savoir les listes, les chaînes de caractères et les séquences de nombres générées à l'aide de la fonction range. On appelle aussi ces structures des itérables. Parce qu'on peut itérer dessus à l'aide des boucles et avoir ainsi accès à chacun de leurs éléments. Les tuples sont aussi des séquences, c'est-à-dire des structures qui contiennent plusieurs valeurs comme les listes. En effet, un tuple est une liste, mais qui ne peut pas être modifiée. Donc une fois un tuple créé, il reste le même jusqu'à la fin du programme. Ainsi, on peut voir un tuple comme une constante dont les valeurs sont gardées immuables durant toute la durée de l'exécution du programme. Pour créer un tuple, on peut procéder de plusieurs façons. La méthode la plus simple consiste à affecter plusieurs valeurs séparées par une virgule à une variable. Dans ce cas, la variable identifiée par t est un tuple. Pour s'en assurer, on affiche son type comme ceci. On peut également inclure les valeurs de notre tuple entre des parenthèses. Bien sûr, comme pour les listes, on peut placer des valeurs de types différents dans un tuple. Dans ce cas, on a à la fois un entier, une chaîne de caractères et un booléen. Il se peut qu'un tuple contienne une seule valeur, mais en faisant ceci, la variable t n'est pas un tuple mais un entier. Même si on place la valeur 1 entre les parenthèses, t reste un entier, car les parenthèses sont vues par l'interpréteur dans ce cas comme des délimiteurs d'opération. C'est comme si vous placez une addition entre deux parenthèses afin de la rendre prioritaire à la multiplication. Donc, si vous voulez que le tuple soit constitué d'un seul élément, il faut placer une virgule après ce dernier comme ceci. Avec ou sans parenthèse. On peut également créer un tuple à partir d'une séquence comme une liste en procédant au transtypage de cette façon. Bien entendu, on peut créer un tuple à partir d'autres séquences comme une chaîne de caractères. Si on affiche la variable t, on aura un tuple constitué des éléments de la chaîne. Puisqu'à la base un tuple n'est rien d'autre qu'une liste que l'on ne peut pas modifier, alors certaines fonctions et méthodes applicables aux listes sont également applicables aux tuples, comme la fonction len qui retourne la longueur du tuple, c'est-à-dire de combien d'éléments est-il constitué. La méthode index permet de retourner la position ou l'indice de l'élément passé en argument. La méthode count retourne la fréquence de l'élément, c'est-à-dire le nombre de fois qu'il figure dans le tuple. L'opérateur d'appartenance in peut aussi être utilisé avec les tuples. Il permet de vérifier si un élément figure ou non dans ce dernier, exactement comme pour les listes et les chaînes de caractères. Bien entendu, les méthodes qui modifient la séquence comme sort, reverse, pop, remove, etc. Ne sont pas supportées par les tuples et c'est normal car ces derniers sont immuables, donc on ne peut pas les modifier. Imaginez que l'on dispose du tuple t qui contient les valeurs suivantes: 19, 3, 1, 20, 24 et 17. Si on souhaite trier notre tuple, alors comme on vient de le voir, la méthode sort n'est pas envisageable. Cependant, on va transstyper notre tuple en liste on applique les modifications nécessaires, puis on reconvertit en tuple encore une fois. Donc, nous commençons par créer la liste lst à partir du tuple en utilisant le transtypage ou cast comme ceci. Ensuite, nous appliquons toutes les modifications que l'on souhaite à notre liste, comme le tri dans l'ordre croissant à l'aide de la méthode sort. Enfin, on retransstype la liste lst en tuple. On peut réutiliser le même identifiant t pour le tuple, ce qui signifie que l'ancienne valeur de la variable a été écrasée et remplacée par une nouvelle valeur. Notez que ces opérations sont rarement menées sur les tuples, car l'originalité d'un tuple c'est son caractère immuable. Donc si on envisageait des modifications sur notre séquence, il aurait été préférable d'opter pour une liste depuis le début et non pas un tuple. Bien entendu, on peut itérer sur notre tuple à l'aide de la boucle comme j'ai mentionné au début. Par exemple, si on veut afficher les carrés des nombres qui figurent dans le tuple, on va prévoir la boucle For comme ceci. Les opérateurs de chaînes, en l'occurrence la concaténation et la répétition, sont aussi applicables aux tuples. À titre d'exemple, si on dispose de 2 tuples t1 et t2 initialisés de cette façon, alors le fait de concaténer t1 et t2 va engendrer un tuple identifié par t constituent des éléments des 2 tuples. Et pareil pour la répétition. Si on multiplie t par 2, alors on aura un tuple t qui est le fruit de la répétition du tuple t 2 fois. Donc, vous avez remarqué que comme si on a affaire à des listes, à la différence près que les tuples ne sont pas modifiables. Nous aurons l'occasion de refaire appel aux tuples plus loin dans cette série afin d'en exploiter tout le potentiel. Pour le moment, nous avons juste besoin de comprendre ce que c'est qu'un tuple et comment le manipuler. Merci pour votre attention et à la vidéo prochaine.