Tutoriel Python : manipuler les tuples
Table des matières
- Introduction
- Définir un tuple
- Définition
- Avantages
- Créer un tuple vide
- Créer un tuple à un seul élément
- Créer un tuple à plusieurs éléments
- Accéder aux valeurs d’un tuple
- Mise à jour d’un tuple
- Supprimer des éléments d’un tuple
- Opérations de base sur les tuples
- Indexation, découpage et matrices
- Affectation multiple
- Les fonctions prédéfinies pour les tuples
- Conclusion
I. Introduction
En Python, une séquence est le terme générique pour un ensemble ordonné. Il existe plusieurs types de séquences en Python, les trois suivants sont les plus importants :
- Les listes sont le type de séquence le plus polyvalent. Les éléments d'une liste peuvent être n'importe quel objet, et les listes sont modifiables. Les éléments peuvent être réaffectés ou supprimés et de nouveaux éléments peuvent être insérés.
- Les tuples sont comme des listes, mais ils sont immuables - ils ne peuvent pas être modifiés.
- Les chaînes sont un type spécial de séquence qui ne peut stocker que des caractères, et elles ont une notation spéciale. Cependant, toutes les opérations de séquence décrites ci-dessous peuvent également être utilisées sur des chaînes.
Dans ce tutoriel, nous allons voir plus particulièrement les tuples.
II. Définir un tuple
1. Définition
Un tuple est une collection d'objets ordonnés et immuables. Tout comme les listes, les tuples sont aussi des séquences. La différence entre les tuples et les listes est que les tuples ne peuvent pas être modifiés comme les listes, et les tuples utilisent des parenthèses tandis que les listes utilisent des crochets. Les parenthèses ne sont pas obligatoires, mais aident à la lisibilité du code (rappelez-vous, la force de python est sa simplicité de lecture). Leur nom est une généralisation des termes ’paire’ (2 éléments), ’triplet’ (3 éléments), ’quadruplet’ (4 éléments), n-uplet ou t-uplet (tout nombre de n ou t éléments).
Remarques :
- Vous ne pouvez pas ajouter d'éléments aux tuples. Les tuples n'ont pas de méthodes d'ajout (append) ou d'extension (extend).
- Vous ne pouvez pas supprimer des éléments du tuple. Les tuples n'ont pas de méthodes de suppression (remove) ou de pop.
- Vous ne pouvez pas rechercher d'éléments dans un tuple. Il n'y a pas de méthode d'index (index) pour les tuples.
2. Avantages
Les tuples étant très similaires aux listes, les deux sont utilisés dans des situations similaires. Cependant, l'implémentation de tuples présente certains avantages. Voici quelques principaux avantages :
- Nous utilisons généralement des tuples pour des types de données hétérogènes (différents) et des listes pour des types de données similaires.
- Comme les tuples sont immuables, la boucle sur les tuples est plus rapide que l'utilisation de listes. Par conséquent, les performances seront légèrement améliorées.
- Les tuples contenant des éléments immuables peuvent être utilisés comme clés de dictionnaire. Pour les listes, ce n'est pas possible.
- Si vos données restent inchangées, leur implémentation en tant que tuple garantira qu'elles restent protégées en écriture.
3. Créer un tuple vide
Un tuple vide est écrit sous forme de deux parenthèses qui ne contiennent rien.
Exemple :
- Code :
tuple_vide = ();
print(tuple_vide);
- Résultat d’exécution :
4. Créer un tuple à un seul élément
Pour écrire un tuple contenant un unique élément, vous devez inclure une virgule, même s'il n'y a qu'une seule valeur.
Exemple :
Code :
tuple_à_un_seul_élément = (50,);
print(tuple_à_un_seul_élément);
Résultat d’exécution :
5. Créer un tuple à plusieurs éléments
La création d’un tuple à plusieurs éléments est aussi simple que de séparer différentes valeurs par des virgules. Vous pouvez choisir de mettre ces valeurs séparées par des virgules entre parenthèses.
Exemple :
Code :
tup_à_quatre_éléments = ('lundi', 'mardi', 2020, 2000);
tup_à_cinq_éléments = (1, 2, 7, 4, 6);
tup_à_trois_éléments= "a", "e", "m";
print(tup_à_quatre_éléments);
print(tup_à_cinq_éléments);
print(tup_à_trois_éléments);
Résultat d’exécution :
III. Manipuler les tuples
1. Accéder aux valeurs d’un tuple
Pour accéder aux valeurs dans un tuple, utilisez les crochets pour le découpage avec l'index ou l'indice pour obtenir la valeur disponible à cet index.
Exemple :
Code :
tup1 = ('lundi', 'mardi', 2020, 2000);
tup2 = (1, 2, 7, 4, 6);
print ("tup1[0]: ", tup1[0]);
print ("tup2[1:5]: ", tup2[1:5]);
Dans le code ci-dessus, la variable "tup1" fait référence à un tuple, ce dernier est constitué de deux chaines de caractères "lundi" et "mardi" et de deux entiers 2020 et 2000, alors que le deuxième tuple "tup2" est composé de cinq entiers 1, 2, 7, 4 et 6. Comme indiqué dans la description, chaque élément du tuple est indicé (il possède un indice) :
- Le premier élément du tuple possède l'indice 0.
- Le deuxième élément du tuple possède l'indice 1.
- Le troisième élément du tuple possède l'indice 2.
- Le quatrième élément du possède l'indice 3.
- Le cinquième élément du tuple possède l’indice 4 et ainsi de suite.
La quatrième ligne du code permet d’afficher l’expression tup1[0] : suivi par le premier élément du premier tuple.
La cinquième ligne du code permet d’afficher l’expression tup2[1 :5] : suivi par quatre éléments du deuxième tuple qui ont pour indice 1 jusqu’à 4.
Remarque : Si on veut afficher par exemple les trois premiers éléments du premier tuple on utilise l’instruction print (tup1[ :3]).
Résultat d’exécution :
2. Mise à jour d’un tuple
Les tuples sont immuables, ce qui signifie que vous ne pouvez pas mettre à jour ou modifier la valeur de ses éléments. Vous pouvez utiliser certains tuples existants pour créer de nouveaux tuples, comme illustré dans l'exemple suivant.
Exemple :
Code :
tup1 = ('lundi', 'mardi', 2020, 2000);
tup1 = (9, 20.11);
tup2 = ('a', 'b');
# Cette action n'est pas valide pour les tuples
# tup1[0] = 50;
# création d'un nouveau tuple à partir de deux tuples existants
tup3 = tup1 + tup2;
print (tup3);
Résultat d’exécution :
3. Supprimer des éléments d’un tuple
La suppression des éléments individuels d'un tuple n'est pas possible. Il n'y a, bien sûr, rien de mal à assembler un autre tuple avec les éléments indésirables supprimés.
Pour supprimer explicitement les tuples entiers, utilisez simplement l'instruction del.
Exemple :
Code :
tup = ('python', 'java', 2021);
print (tup);
del tup;
print ("After deleting tup : ");
print (tup);
Résultat d’exécution :
Notez une exception levée, c'est parce qu'après del tup le tuple n'existe plus.
4. Opérations de base sur les tuples
La réponse des tuples aux opérateurs + et * est très similaire à celle des chaînes ; ici, ils signifient également concaténation et répétition, sauf que le résultat est un nouveau tuple, pas une chaîne. En fait, les tuples peuvent répondre à toutes les opérations générales des séquences.
Expression en Python | Résultat d’exécution | Description |
Len((1,9,4)) | 3 | Longueur |
(1,2,3) + (7,8,9) | (1, 2, 3, 7, 8, 9) | Concaténation |
('Bonjour’,) * 2 | (‘Bonjour’, ‘Bonjour’) | Répétition |
2 in (5, 1, 2) | True | Appartenance |
For y in (1, 2, 4) : print (y,) | 1 2 4 | Itération |
5. Indexation, découpage et matrices
Étant donné que les tuples sont des séquences, l'indexation et le découpage fonctionnent de la même manière pour les tuples que pour les chaînes.
Exemples d’indexation :
Code 1 :
L = ('bonjour', 'Hello', 'HELLO!');
print(L[2]);
Résultat d’exécution 1 :
Code 2 :
L = ('bonjour', 'Hello', 'HELLO!');
print(L[-2]);
Résultat d’exécution 2 :
Un indice négatif permet un comptage à partir de la droite.
Exemples de découpage (ou tranchage) :
Code :
L = ('bonjour', 'Hello', 'HELLO!');
print(L[1:]);
Résultat d’exécution :
Le tranchage récupère les sections. Dans la sortie du code, on a obtenu une section qui commence de l’élément d’indice 1 (‘Hello’) jusqu’à la fin du tuple.
6. Affectation multiple
A quoi sert un tuple ? La réponse à cette question est simple. Généralement, le tuple permet une affectation multiple. Cette opération permet aux tuples de modifier les valeurs de plusieurs variables avec des valeurs différentes en même temps.
Code :
tup1, tup2 = (11, 2), (22, 1, 'Hello');
print (tup1);
print (tup2);
Résultat d’exécution :
7. Les fonctions prédéfinies pour les tuples
Python inclut les fonctions de tuple suivantes :
a) Fonction Cmp ()
Description :
La méthode de tuple Python cmp () compare les éléments de deux tuples.
Syntaxe :
La syntaxe de la méthode cmp () est comme suit :
cmp(tuple1, tuple2)
Paramètres :
tuple1 : Il s’agit du premier tuple à comparer.
tuple1 : Il s’agit du deuxième tuple à comparer.
Valeur retournée :
Si les éléments sont du même type, la comparaison est effectuée et le résultat est renvoyé. Si les éléments sont de types différents, vérifiez s'il s'agit de nombres.
- S'il s'agit d'un nombre, veuillez effectuer une coercition numérique et comparer si nécessaire.
- Si un élément est un nombre, l'autre élément est "plus grand" (Il est à noter que si le tuple contient des nombres et des "chaînes de caractères", ces dernières sont toujours considérées comme supérieures aux nombres.)
- Sinon, les types seront triés par ordre alphabétique de nom. Si nous atteignons la fin de l'un des tuples, le plus long tuple est "plus grand".
Si nous épuisons deux tuples et partageons les mêmes données, le résultat est égal, ce qui signifie que 0 sera renvoyé.
D’une façon générale :
Si tuple1 1, si tuple1 = tuple2 la valeur renvoyée est et si tuple1> tuple2 retourne 1.Exemple :
L'exemple suivant montre l'utilisation de la méthode cmp ().
Code :
tup1, tup2 = (28, 'lundi'), (29, 'mardi') ;
print (cmp(tup1, tup2)) ;
print (cmp(tup2, tup1)) ;
tup3 = tup2 + (300,);
print (cmp(tup2, tup3)) ;
Résultat d’exécution :
b) Fonction Len ()
Description :
La méthode de tuple Python len () retourne le nombre d'éléments dans le tuple.
Syntaxe :
La syntaxe de la méthode len () est comme suit :
len(tuple)
Paramètres :
tuple : Il s'agit d'un tuple pour lequel le nombre d'éléments va être compter.
Valeur retournée :
Cette méthode renvoie le nombre d'éléments dans le tuple.
Exemple :
L'exemple suivant montre l'utilisation de la méthode len ().
Code :
tup1, tup2 = (12, 'abc', 'informatique’), (45, 'abc') ;
print ("La longueur du premier tuple : ", len(tup1)) ;
print ("La longueur du deuxième tuple : ", len(tup2)) ;
Résultat d’exécution :
c) Fonction Max ()
Description :
La méthode de tuple Python max () retourne la valeur maximale des éléments d’un tuple.
Syntaxe :
La syntaxe de la méthode max () est comme suit :
max(tuple)
Paramètres :
tuple : Il s'agit d'un tuple à partir duquel l'élément maximum doit être renvoyé.
Valeur retournée :
- Cette fonction max () renvoie la valeur maximale de la série de données.
- Si vous appelez max () sur un tuple, il renverra le plus grand élément. Si le tuple est vide, la valeur par défaut est renvoyée. Sinon, une exception ValueError sera déclenchée.
- Si max () est appelé sur un tuple à un seul élément, la valeur maximale renvoyée est égale à cet élément.
Exemple :
L'exemple suivant montre l'utilisation de la méthode max ().
Code :
tup1, tup2, tup3 = ('xy', 'ab', '', 'cd'), (45, 778, 2000), () ;
print ("L’élément de valeur max du premier tuple est : ", max(tup1)) ;
print ("L’élément de valeur max du deuxième tuple est : ", max(tup2)) ;
print ("L’élément de valeur max du troisième tuple est : ", max(tup3)) ;
Résultat d’exécution :
d) Fonction Min ()
Description :
La méthode de tuple Python min () retourne la valeur minimale des éléments d’un tuple.
Syntaxe :
La syntaxe de la méthode min () est comme suit :
min(tuple)
Paramètres :
tuple : Il s'agit d'un tuple à partir duquel l'élément minimal doit être renvoyé.
Valeur retournée :
- Cette fonction min () renvoie la valeur minimale de la série de données.
- Si vous appelez min () sur un tuple, il renverra le plus petit élément. Si le tuple est vide, la valeur par défaut est renvoyée. Sinon, une exception ValueError sera déclenchée.
- Si min () est appelé sur un tuple à un seul élément, la valeur minimale renvoyée est égale à cet élément.
Exemple :
L'exemple suivant montre l'utilisation de la méthode min ().
Code :
tup1, tup2, tup3 = ('xy', 'ab', '', 'cd'), (45, 778, 2000), () ;
print ("L’élément de valeur min du premier tuple est : ", min(tup1)) ;
print ("L’élément de valeur min du deuxième tuple est : ", min(tup2)) ;
print ("L’élément de valeur min du troisième tuple est : ", min(tup3)) ;
Résultat d’exécution :
e) Fonction Tuple ()
Description :
La méthode tuple de Python tuple () permet de convertir une liste d'éléments en tuple.
Syntaxe :
La syntaxe de la méthode tuple () est comme suit :
tuple(séquence)
Paramètres :
séquence : Il s’agit d’une séquence à convertir en tuple.
Valeur retournée :
Cette fonction permet de retourner un tuple.
Exemple :
L'exemple suivant montre l'utilisation de la méthode tuple ().
Code :
liste = [2020, 'xy', 'ab', 'cd']
tuple = tuple(liste)
print ("le tuple est : ", tuple) ;
Résultat d’exécution :
f) Fonction Sum ()
Description :
La méthode tuple de Python Sum () permet de calculer la somme des éléments d’un tuple.
Syntaxe :
La syntaxe de la méthode Sum () est comme suit :
Sum(tuple, valeur_de_début)
Paramètres :
- tuple :Il s’agit du tuple dont la somme de ses éléments doit être retourner.
- valeur_de_début (optionnelle) : Cette valeur est ajoutée à la somme des éléments du tuple. La valeur de départ par défaut est 0.
Valeur retournée :
La fonction sum () ajoute la valeur de départ aux éléments donnés par le tuple de gauche à droite. Cette dernière s'applique uniquement aux valeurs numériques. Si vous essayez de l'utiliser avec un type non numérique, une erreur se produira.
Exemple :
L'exemple suivant montre l'utilisation de la méthode sum ().
Code :
tuple = (1, 1, 4, 4) ;
print ("la somme est : ", sum(tuple, 10)) ;
Résultat d’exécution :
IV. Conclusion
Le type de données d'un tuple est un type de données ordonné qui ne peut pas être modifié, permettant une optimisation aux programmes plus rapide que les listes que Python doit traiter. Lorsque d'autres personnes travaillent avec vous sur le code, votre utilisation des tuples leur fera savoir que vous n'allez pas modifier ces séquences de valeurs.
Cet article présente tout d’abord une présentation des tuples (définition, avantages, création), ensuite les fonctions de base des tuples, y compris l'indexation, le découpage et la concaténation des tuples etc. Et enfin les fonctions intégrées disponibles.
Article publié le 28 Septembre 2020 par Kaoutar OUAZZINE