Python - Tuples

Un tuple est une séquence d'objets Python immuables. Les tuples sont des séquences, tout comme les listes. Les différences entre les tuples et les listes sont que 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. Si vous le souhaitez, vous pouvez également mettre ces valeurs séparées par des virgules entre parenthèses. Par exemple -

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";

Le tuple vide est é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 peuvent être découpés, concaténés, etc.

Accéder aux valeurs dans les tuples

Pour accéder aux valeurs dans tuple, utilisez les crochets pour le découpage avec l'index ou les index pour obtenir la valeur disponible à cet index. Par exemple -

#!/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 modifier 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 -

#!/usr/bin/python

tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');

# Following action is not valid for tuples
# tup1[0] = 100;

# So let's create a new tuple as follows
tup3 = tup1 + tup2;
print tup3;

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -

(12, 34.56, 'abc', 'xyz')

Supprimer les éléments de tuple

La suppression des é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 supprimés.

Pour supprimer explicitement un tuple entier, utilisez simplement le deldéclaration. Par exemple -

#!/usr/bin/python

tup = ('physics', 'chemistry', 1997, 2000);
print tup;
del tup;
print "After deleting tup : ";
print tup;

Cela produit le résultat suivant. Notez une exception levée, car aprèsdel tup le tuple n'existe plus -

('physics', 'chemistry', 1997, 2000)
After deleting 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 des chaînes; ils signifient ici aussi la concaténation et la répétition, sauf que le résultat est un nouveau tuple, pas une chaîne.

En fait, les tuples répondent à toutes les opérations générales de séquence que nous avons utilisées sur les chaînes dans le chapitre précédent -

Expression Python Résultats La description
len ((1, 2, 3)) 3 Longueur
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) Enchaînement
('Salut!',) * 4 ("Salut!", "Salut!", "Salut!", "Salut!") Répétition
3 pouces (1, 2, 3) Vrai Adhésion
pour x dans (1, 2, 3): imprimer x, 1 2 3 Itération