Dans cette partie de cours, on va découvrir les l’utilisation des tuples en python. Nous avons vu les listes simples et les listes imbriquées en python. Alors, les tuples ont-ils une liaison avec les listes?! sont-ils semblables aux listes ?
Définition
Les tuples sont des collections de données ordonnées et immuables (en lecture seule : une fois crées, on ne peut pas les modifiés). Ils peuvent être considérés comme des listes immuables. Ils sont écrits entre parenthèses:
myTuple = (1, 2, True, "a string", (3, 4), [5, 6])
print(myTuple)
myList = [1, 2, True, "a string", (3, 4), [5, 6]]
print(myList)
Chaque élément de tuple peut être d’un type différent (c’est-à-dire des entiers, des chaînes, des booléens, etc.). De plus, les tuples peuvent contenir d’autres tuples ou listes (et inversement).
Remarques :
- Les tuples préfèrent utiliser des parenthèses, bien qu’il soit égalementpossible de créer un tuple uniquement à partir d’un ensemble de valeurs séparées par des virgules.
Exemple:
tuple1 = (1, 2, 4, 8) tuple2 = 1., .5, .25, .125 print(tuple1) print(tuple2)
- Il est possible de créer un tuple vide. Exemple : Tuple1 = ()
- Si on souhaite créer un tuple à un élément, on doit prendre en considération le fait que, pour des raisons de syntaxe (un tuple doit être distingué d’une valeur simple ordinaire), on doit terminer la valeur par une virgule :
oneElementTuple1 = (1, )
oneElementTuple2 = 1.,
Si on supprime la virgule, on dit à Python de créer une variable, pas un tuple:
myTup1 = 1,
print(type(myTup1)) # outputs: <class 'tuple'>
myTup2 = 1
print(type(myTup2)) # outputs: <class 'int'>
Opérations sur les tuples
Si on souhaite obtenir les éléments d’un tuple afin de les relire, on peut utiliser les mêmes conventions auxquelles on est habitué lors de l’utilisation des listes
Exemple :
Tuple1 = (1, 2.0, "string", [3, 4], (5, ), True)
print(Tuple1[0])
print(Tuple1[-1])
print(Tuple1[1:])
print(Tuple1[:-2])
for el in Tuple1 :
print(el)
Les tuples sont immuables, ce qui signifie qu’on ne peut pas modifier leurs éléments (on ne peut pas ajouter de tuples, ni modifier ou supprimer des éléments de tuple )
Exemple :
Tuple1 = (1, 10, 100, 1000)
Tuple1.append(10000) #erreur
del Tuple1[0] #erreur
Tuple1[1] = -10 #erreur
Cependant, on peut supprimer un tuple dans son ensemble:
myTuple = 1, 2, 3,
del myTuple
print(myTuple) # NameError: name 'myTuple' is not defined
On peut parcourir un élément d’un tuple (exemple 1), vérifier si un élément spécifique est (pas) présent dans un tuple (exemple 2), utiliser la fonction len() pour vérifier combien d’éléments il y a dans un tuple (exemple 3), ou même joindre / multiplier des tuples (exemple 4)
Exemple 1 :
t1 = (1, 2, 3)
for elem in t1:
print(elem)
Exemple 2 :
t2 = (1, 2, 3, 4)
print(5 in t2)
print(5 not in t2)
Exemple 3 :
t3 = (1, 2, 3, 5)
print(len(t3))
Exemple 4 :
t4 = t1 + t2
t5 = t3 * 2
print(t4)
print(t5)
Exemple :
myTuple = (1, 10, 100)
t1 = myTuple + (1000, 10000)
t2 = myTuple * 3
print(len(t2))
print(t1)
print(t2)
print(10 in myTuple)
print(-10 not in myTuple)
Résultat :
9
(1, 10, 100, 1000, 10000)
(1, 10, 100, 1, 10, 100, 1, 10, 100)
True
True
L’une des propriétés de tuple les plus utiles est leur capacité à apparaître sur le côté gauche de l’opérateur d’affectation. Vous avez vu ce phénomène il y a quelque temps, quand il fallait trouver un outil élégant pour échanger les valeurs de deux variables.
Exemple :
var = 123
t1 = (1, )
t2 = (2, )
t3 = (3, var)
t1, t2, t3 = t2, t3, t1
print(t1, t2, t3)
Il montre trois tuples en interaction – en effet, les valeurs qui y sont stockées “circulent” – t1devient t2, t2devient t3et t3devient t1.
Remarque : l’exemple présente un fait plus important : les éléments d’un tuple peuvent être des variables, pas seulement des littéraux. De plus, elles peuvent être des expressions si elles se trouvent du côté droit de l’opérateur d’affectation.
Remarque : Liste et tuple
On peut également créer un tuple à l’aide d’une fonction intégrée Python appelée tuple(). Ceci est particulièrement utile lorsqu’on souhaite convertir un certain itérable (par exemple, une liste, une plage, une chaîne, etc.) en un tuple:
myTup = tuple((1, 2, "string"))
print(myTup)
st = [2, 4, 6]
print(lst) # outputs: [2, 4, 6]
print(type(lst)) # outputs: <class 'list'>
tup = tuple(lst)
print(tup) # outputs: (2, 4, 6)
print(type(tup)) # outputs: <class 'tuple'>
De la même manière, lorsqu’on souhaite convertir un itérable en liste, on peut utiliser une fonction intégrée Python appelée list():
tup = 1, 2, 3,
lst = list(tup)
print(type(lst)) # outputs: <class 'list'>
Exercices d'application
Exercice 1 : Prédire le résultat
myTup = (1, 2, 3)
print(myTup[2])
Exercice 2 :
Quelle est la sortie de l’extrait de code suivant ?
tup = 1, 2, 3
a, b, c = tup
print(a * b * c)
Exercice 3 :
Complétez le code pour utiliser correctement la méthode count() pour trouver le nombre de doublons 2dans le tuple suivant.
tup = 1, 2, 3, 2, 4, 5, 6, 2, 7, 2, 8, 9
duplicates = #code
print(duplicates) # Résultats : 4
Exercice 4 :
Proposer un programme qui convertira la liste l en tuple.
l = ["car", "Ford", "flower", "Tulip"]
t = # your code
print(t)
Vous pouvez suivre la liste des vidéos du cours Python (Programmation ) sur notre chaine youtube : Vidéos Python (cours) , Vidéos Python (exercices).
Aussi, notre cours bien structuré est sur le site : cours python
Découvrir plus de cours
Algorithmes, base de données, merise, SQL
XSLT
Nous avons expliqué comment écrire un document xml bien formé, comment vérifier si ce document...
XML : eXtensible Markup Language
Introduction eXtensible Markup Language est une spécification proposée par le W3C (World Wide WConsortium) en...
L’héritage en programmation orientée objet
Bienvenue dans notre cours ‘Programmation orientée objet en Python’. Alors, dans cette partie de cours, on...
Solution TP0 (Entrées/Sorties et Traitements)
Dans cette partie, on va corriger l’activité 1 qui concerne l’objectif : analyser un problème...