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

cours xml-dtd-xsd-xslt-xpath

XSLT

Nous avons expliqué comment écrire un document xml bien formé, comment vérifier si ce document...

cours xml-dtd-xsd-xslt-xpath

XML : eXtensible Markup Language

Introduction eXtensible Markup Language est une spécification proposée par le W3C (World Wide WConsortium) en...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *