Tutoriel de tuple ( )
DESCRIPTION.
Créer un objet séquence, ou collection, qui contient une collection, non modifiable, de valeurs qui peuvent être de toutes natures d'objets valides.
SYNTAXE.
TPL_Designation = ( valeura , ... , valeurn )
TPL_Designation ⇨ Nom de la variable [ OBLIGATOIRE ]
= ⇨ affectation de la liste à la variable [ OBLIGATOIRE ]
( ) ⇨ création d'une instance de tuple ( ) [ optionnel ]
valeura , ... , valeurn ⇨ éléments du tuple [ OBLIGATOIRE ]
TPL_Designation = tuple ( iterable )
TPL_Designation ⇨ Nom de la variable [ OBLIGATOIRE ]
= ⇨ affectation de la liste à la variable [ OBLIGATOIRE ]
tuple ( ) ⇨ appel du constructeur de classe [ OBLIGATOIRE ]
iterable ⇨ objet itérable contenant les valeurs [ optionnel ]
REMARQUES.
valeur peut être n'importe quel objet valide de Python pouvant être comparé.
iterable doit être un objet collection, ou séquence, tel que : range ( ), list ( ), tuple ( ), bytes ( ) ou bytearray ( ).
Python gère de nombreux types d'objets_variables. Certains sont des collections de valeurs regroupées au sein d'un même objet_variable. L'un de ces objet_variable est le tuple ( ). On peut définir simplement un tuple ( ) comme une list ( ) dont les items sont constants après la création du tuple ( ). Attention cependant, si des items d'un tuple ( ) sont des objets mutables, les éléments de ces items peuvent être modifiés.
Bien que très vivement conseillée, la présence des parenthèses n'est pas indispensable. En effet, en l'absence de tout couple de symboles ([ ], { }, ( )) encadrant une suite valeurs, séparés par des virgules, c'est bien la présence d'une virgule après le premier élément qui force la création du tuple ( ).
Un tuple ( ) disposent des même méthodes pour sa lecture, et celle de ses éléments, que les objets list ( ). Par contre, un tuple ( ) ne possède aucune méthode de modification, suppression, et d'ajout d'éléments après sa création. Même la méthode de copie superficielle, .copy ( ), n'est pas utilisable.
Les instances de tuple ( ) sont des objets itérables et non-mutables.
Bien qu'étant un raccourcit, la forme de création TPL_Designation = ( valeura , ... , valeurn ) est à privilégier.
Les variables globales de type tuple ( ) sont identifiées dans le site par : TPL_.
Voir les conventions sur les variables utilisées dans ce site ...
CRÉER UN TUPLE.
Un objet tuple ( ) peut être créé de plusieurs façons.
En utilisant des parenthèses.
TPL_Depart = ( "Bleu" , 3 , 9.99 , [ "N" , "W" , 3 , .5 ] )
print ( TPL_Depart ) retourne ('Bleu', 3, 9.99, ['N', 'W', 3, 0.5])
print ( type ( TPL_Depart ) ) retourne <class 'tuple'>
Sans utiliser de parenthèse.
TPL_Depart = "Bleu" , 3 , 9.99 , [ "N" , "W" , 3 , .5 ]
print ( TPL_Depart ) retourne ('Bleu', 3, 9.99, ['N', 'W', 3, 0.5])
print ( type ( TPL_Depart ) ) retourne <class 'tuple'>
En utilisant le constructeur de classe tuple ( ).
TPL_Depart = tuple ( [ "Bleu" , 3 , 9.99 , [ "N" , "W" , 3 , .5 ] ] )
print ( TPL_Depart ) retourne ('Bleu', 3, 9.99, ['N', 'W', 3, 0.5])
print ( type ( TPL_Depart ) ) retourne <class 'tuple'>
A partie d'une compréhension de liste, tuple ( ) doit être implicitement invoquée.
TPL_Cubes = tuple ( kchiffre ** 3 for kchiffre in range ( 11 ) )
print ( TPL_Cubes ) retourne (0, 1, 8, 27, 64, 125, 216, 343, 512, 729, 1000)
print ( type ( TPL_Cubes ) ) retourne <class 'tuple'>
Sinon c'est un objet générateur qui est retourné.
TPL_Cubes = ( kchiffre ** 3 for kchiffre in range ( 11 ) )
print ( TPL_Cubes ) retourne <generator object <genexpr> at 0xb4fe73b0>
print ( type ( TPL_Cubes ) ) retourne <class 'generator'>
Notez bien, que c'est la présence de virgules entre les éléments qui fait un tuple ( ) et non la présence des parenthèses ( ). Voici quelques exemples pour mieux appréhender cette notion.
TPL_Vide = ( )
print ( TPL_Vide ) retourne ()
print ( type ( TPL_Vide ) ) retourne <class 'tuple'>
Simple = "un"
print ( Simple ) retourne un
print ( type ( Simple ) ) retourne <class 'str'>
TPL_Simple = "un" ,
print ( TPL_Simple ) retourne ('un',)
print ( type ( TPL_Simple ) ) retourne <class 'tuple'>
Mono = ( "un" )
print ( Mono ) retourne un
print ( type ( Mono ) ) retourne <class 'str'>
TPL_Mono = ( "un" , )
print ( TPL_Mono ) retourne ('un',)
print ( type ( TPL_Mono ) ) retourne <class 'tuple'>
LECTURE D'UN TUPLE.
Les tuple ( ) possèdent les mêmes méthodes pour leur lecture que les list ( ).
TPL_Voyelles = ( "a" , "e" , "i" , "o" , "u" )
print ( TPL_Voyelles [ 3 ] ) retourne o
print ( TPL_Voyelles [ 1 : 4 ] ) retourne ('e', 'i', 'o')
print ( TPL_Voyelles [ : 2 ] ) retourne ('a', 'e')
print ( TPL_Voyelles [ 2 : ] ) retourne ('i', 'o', 'u', 'y')
print ( TPL_Voyelles [ : : -1 ] ) retourne ('y', 'u', 'o', 'i', 'e', 'a')
print ( TPL_Voyelles [ 7 ] ) retourne IndexError: tuple index out of range.
Voir le tutoriel sur les list ( ) pour plus de détails sur la lecture des objets itérables grâce aux slicing (tranchage).
Lecture tous les éléments d'un tuple ( ) avec une boucle for.
TPL_Voyelles = ( "a" , "e" , "i" , "o" , "u" )
for klettre in TPL_Voyelles :
print ( klettre )
retourne
a
e
i
o
u
TPL_Voyelles = ( "a" , "e" , "i" , "o" , "u" )
for klettre in enumerate ( LST_Voyelles ) :
print ( klettre )
retourne
(0, 'a')
(1, 'e')
(2, 'i')
(3, 'o')
(4, 'u')
Pour connaitre le nombre d'éléments d'un tuple en utilise la fonction len ( ).
TPL_Voyelles = ( "a" , "e" , "i" , "o" , "u" )
print ( len ( TPL_Voyelles ) ) retourne 5
Trouver un index grâce à une valeur.
TPL_Voyelles = ( "a" , "e" , "i" , "o" , "u" )
print ( TPL_Voyelles.index ( "i" ) ) retourne 2
print ( TPL_Voyelles.index ( "b" ) ) retourne ValueError: tuple.index(x): x not in tuple
car la valeur recherchée n'est pas présente dans le tuple ( ).
RAPPEL.
Un tuple ( ) est non mutable, on ne peut pas modifier le nombre de ses d'items, ni changer la valeur d'affectation de ses items. Mais il faut bien comprendre que cette valeur est un lien vers un objet, si cette objet est mutable, comme une list ( ) ou un dict ( ), cette objet peut être modifié.
TPL_Depart = ( "Bleu" , 3 , 9.99 , [ "N" , "W" , 3 , .5 ] )
print ( TPL_Depart ) retourne ('Bleu', 3, 9.99, ['N', 'W', 3, 0.5])
print ( type ( TPL_Depart ) ) retourne <class 'tuple'>
print ( TPL_Depart [ 3 ] ) retourne ['N', 'W', 3, 0.5]
print ( type ( TPL_Depart [ 3 ] ) ) retourne <class 'list'>
TPL_Depart [ 3 ] [ 2 ] = 12
TPL_Depart [ 3 ].append ( "start" )
TPL_Depart [ 3 ].pop ( 2 )
TPL_Depart [ 3 ].extend ( [ "a" , "b" , "c" ] )
print ( TPL_Depart [ 3 ] ) retourne ['N', 'W', 0.5, 'start', 'a', 'b', 'c']
print ( TPL_Depart ) retourne ('Bleu', 3, 9.99, ['N', 'W', 0.5, 'start', 'a', 'b', 'c'])
TPL_Depart [ 3 ] = [ "O" , "S" , 2 , .3 ] retourne TypeError: 'tuple' object does not support item assignment
Le quatrième item (index 3) du tuple ( ) est une list ( ), on peut utiliser sur cet item les méthodes de classe list ( ) pour le modifier, mais on ne peut pas le modifier directement.
MÉTHODES SPÉCIFIQUES AUX OBJETS TUPLE ( ).
count ( ) : retourne le nombre d'items ayant la même valeur.
index ( ) : retourne l'index de l'item ayant une certaine valeur.
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la LOGITHEQUE de MON PYTHON PAS A PAS
vous trouvez des suggestions de projets simples et classiques pour
ooo
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
ooo
la programmation récréative avec le langage PYTHON 3
avec un exemple de résolution à télécharger pour vous inspirer.