Un tuple est une liste qui ne peut plus être modifiée.
Pour créer un tuple , vous pouvez utiliser la syntaxe suivante:
mon_tuple = 1, 2, 3
ou
mon_tuple = (1, 2, 3)
Le tuple est une sorte de liste, on peut donc utiliser la même syntaxe pour lire les données du tuple.
La somme de 2 tuples est un tuple formé des eléments du premier tuple et du second tuple.
Voici un exemple :
Comme pour les listes on peut parcourir les éléments d'un tuple.
Voici un exemple :
in
L'instruction in
permet de tester si un élément est dans un tuple et répond par un booléen (True ou False)
On peut aussi utiliser l'instruction not in
pour tester qu'un élément n'est pas dans un tuple.
Exemple d'un programme qui test si 0
appartient à un tuple.
Le tuple vide s'écrit juste avec des parenthèses vides :
tuple_vide=()
Le tuple contenant un seul élément s'écrit l'élément suivi d'une virgule :
tuple_un_elt=4,
L'utilisation des parenthèses est indispensable pour écrire un tuple dans différents cas.
Par exemples :
Sinon :
Si on omet les parenthèses on crée une erreur : addition tuple et entier impossible.
Si on omet les parenthèses on crée un nouveau tuple.
Sinon
Si on omet les parenthèses l'appel de la fonction point(2,2)
demande 2 variables donc on génére une erreur.
Les tuples nommés sont des types d'objets légers et faciles à créer. Les instances de tuple nommées peuvent être référencées en utilisant la synthaxe "orienté objet" ou la syntaxe tuple standard.
Les tuples nommés sont disponibles dans le module (ou bibliothèque) collections
qui n'est pas implémenté sur l'émulateur de ce site.
Par exemple, il est commun de représenter un point comme un tuple (x, y)
. Cela conduit au code suivant:
pt1 = (1.0, 5.0)
pt2 = (2.5, 1.5)
from math import sqrt
distance = sqrt((pt1[0]-pt2[0])**2 + (pt1[1]-pt2[1])**2)
en utilisant un tuple nommé, il devient plus lisible:
from collections import namedtuple
Point = namedtuple('Point', 'x y')
pt1 = Point(1.0, 5.0)
pt2 = Point(2.5, 1.5)
from math import sqrt
distance = sqrt((pt1.x-pt2.x)**2 + (pt1.y-pt2.y)**2)
Cependant, les tuples nommés sont toujours compatibles à l'envers avec les tuples normaux, de sorte que le code suivant fonctionnera toujours:
from collections import namedtuple
Point = namedtuple('Point', 'x y')
pt1 = Point(1.0, 5.0)
pt2 = Point(2.5, 1.5)
from math import sqrt
# avec la synthaxe tuple
distance = sqrt((pt1[0]-pt2[0])**2 + (pt1[1]-pt2[1])**2)
# autre usage
x1, y1 = pt1