Maîtriser les tuples Python : Définition, utilisation et différences avec les listes
Un tuple est une collection d'objets qui est ordonnée et immuable. Les tuples sont des séquences, tout comme les listes. Les différences entre tuples et listes sont : les tuples ne peuvent pas être modifiés contrairement aux listes et les tuples utilisent des parenthèses, tandis que les listes utilisent des crochets.
Créer un tuple est aussi simple que de mettre différentes valeurs séparées par des virgules. Optionnellement, vous pouvez mettre ces valeurs séparées par des virgules entre parenthèses aussi. Par exemple :
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
Le tuple vide s'écrit comme deux parenthèses ne contenant rien :
tup1 = ();
Pour écrire un tuple contenant une seule valeur, vous devez inclure une virgule, même s'il n'y a qu'une seule valeur :
tup1 = (50,);
Comme les indices de chaîne, les indices de tuple commencent à 0, et ils peuvent être tranchés, concaténés, etc.
Accès aux valeurs dans les tuples
Pour accéder aux valeurs dans un tuple, utilisez les crochets pour le tranchage avec l'index ou les indices pour obtenir la valeur disponible à cet index. Par exemple :
Démonstration en direct#!/usr/bin/python
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );
print "tup1[0]: ", tup1[0];
print "tup2[1:5]: ", tup2[1:5];
Lorsque le code ci-dessus est exécuté, il produit le résultat suivant :
tup1[0]: physics tup2[1:5]: [2, 3, 4, 5]
Mise à jour des tuples
Les tuples sont immuables, ce qui signifie que vous ne pouvez pas mettre à jour ou changer les valeurs des éléments de tuple. Vous pouvez prendre des portions de tuples existants pour créer de nouveaux tuples comme le montre l'exemple suivant :
Démonstration en direct#!/usr/bin/python
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');
# L'action suivante n'est pas valide pour les tuples
# tup1[0] = 100;
# Alors créons un nouveau tuple comme suit
tup3 = tup1 + tup2;
print tup3;
Lorsque le code ci-dessus est exécuté, il produit le résultat suivant :
(12, 34.56, 'abc', 'xyz')
Suppression d'éléments de tuple
La suppression d'éléments de tuple individuels n'est pas possible. Il n'y a, bien sûr, rien de mal à assembler un autre tuple avec les éléments indésirables écartés.
Pour supprimer explicitement un tuple entier, utilisez simplement l'instruction del. Par exemple :
Démonstration en direct#!/usr/bin/python
tup = ('physics', 'chemistry', 1997, 2000);
print tup;
del tup;
print "Après suppression de tup : ";
print tup;
Cela produit le résultat suivant. Notez une exception levée, car après del tup le tuple n'existe plus :
('physics', 'chemistry', 1997, 2000)
Après suppression de tup :
Traceback (most recent call last):
File "test.py", line 9, in <module>
print tup;
NameError: name 'tup' is not defined
Opérations de base sur les tuples
Les tuples répondent aux opérateurs + et * un peu comme les chaînes ; ils signifient concaténation et répétition ici aussi, sauf que le résultat est un nouveau tuple, pas une chaîne.
En fait, les tuples répondent à toutes les opérations de séquence générales que nous avons utilisées sur les chaînes dans le chapitre précédent :
| Expression Python | Résultats | Description |
|---|---|---|
| len((1, 2, 3)) | 3 | Longueur |
| (1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | Concaténation |
| ('Hi!',) * 4 | ('Hi!', 'Hi!', 'Hi!', 'Hi!') | Répétition |
| 3 in (1, 2, 3) | True | Appartenance |
| for x in (1, 2, 3): print x, | 1 2 3 | Itération |
Indexation, tranchage et matrices
Parce que les tuples sont des séquences, l'indexation et le tranchage fonctionnent de la même manière pour les tuples que pour les chaînes. En supposant l'entrée suivante :
L = ('spam', 'Spam', 'SPAM!')
| Expression Python | Résultats | Description |
|---|---|---|
| L[2] | 'SPAM!' | Les décalages commencent à zéro |
| L[-2] | 'Spam' | Négatif : compter depuis la droite |
| L[1:] | ['Spam', 'SPAM!'] | Le tranchage récupère des sections |
Absence de délimiteurs d'encadrement
Tout ensemble d'objets multiples, séparés par des virgules, écrit sans symboles d'identification, c'est-à-dire crochets pour les listes, parenthèses pour les tuples, etc., sont par défaut des tuples, comme indiqué dans ces courts exemples :
Démonstration en direct#!/usr/bin/python print 'abc', -4.24e93, 18+6.6j, 'xyz'; x, y = 1, 2; print "Valeur de x , y : ", x,y;
Lorsque le code ci-dessus est exécuté, il produit le résultat suivant :
abc -4.24e+93 (18+6.6j) xyz Valeur de x , y : 1 2
Fonctions intégrées pour les tuples
Python inclut les fonctions de tuple suivantes :
| N° | Fonction avec description |
|---|---|
| 1 | cmp(tuple1, tuple2) Compare les éléments des deux tuples. |
| 2 | len(tuple) Donne la longueur totale du tuple. |
| 3 | max(tuple) Retourne l'élément du tuple avec la valeur max. |
| 4 | min(tuple) Retourne l'élément du tuple avec la valeur min. |
| 5 | tuple(seq) Convertit une liste en tuple. |
Python
- Maîtriser les types de données Python : Guide pratique
- Maîtriser les opérateurs Python : Guide complet
- Maîtriser l'instruction pass en Python : Guide pratique
- Maîtriser les arguments de fonctions Python : Positionnels, nommés et paramètres par défaut
- Maîtriser les dictionnaires Python : création, manipulation et techniques avancées
- Maîtriser les itérateurs Python : fonctionnement et création des vôtres
- Les fermetures Python expliquées : comment les fonctions imbriquées capturent les variables
- Maîtriser Python datetime : guide pratique pour les dates, heures et fuseaux horaires
- Maîtriser time.sleep() en Python : Bonnes pratiques, multithreading et exemples réels