tuple
Chapitre 1: Introduction aux tableaux
Dans la deuxième partie 2-Représentation des
données: types et valeurs de base, nous avions vu certains types de variables
simples: int
(entiers), float
(nombres à virgule flottante)
bool
(booléen), str
(chaîne de caractères). Nous allons maintenant voir des
types construits qui sont des collections d’objets de type simple assemblés dans
ce que l’on appelle une structure de données.
Nous verrons dans cette partie trois exemples de types construits:
- les p-uplets
tuple
et listeslist
: des collections d’éléments ordonnés dans lesquels les valeurs sont accédées via un indice de position. - les p-uplet nommés
namedtuple
et les dictionnairesdict
: ensemble d’éléments dans lesquels les valeurs sont accédées via une clef.
1 Qu’est-ce qu’un tableau?
- Tableau
-
En informatique, un tableau est une structure de données représentant une séquence finie d’éléments auxquels on peut accéder efficacement par leur indice, dans la séquence.
Il existe deux implémentations des tableaux en Python: les tuple
s et les list
es.
1.1 Syntaxe des tuples (a, b, c)
Les tuples sont des valeurs séparées par des virgules ,
entourées de parenthèses
(..., ..., ...
)` qui peuvent parfois être omises.
1.2 Syntaxe des listes [a, b, c]
Les valeurs de la collection sont entourées par des crochets []
, leurs éléments sont séparés
par des virgules.
1.3 Différences entre tuple et liste
Outre la syntaxe, il y a plusieurs différences clés entre les tuples et les listes en Python:
-
Immutabilité : les tuples sont immuables, c’est-à-dire qu’une fois créés, ils ne peuvent pas être modifiés. Les listes, en revanche, sont mutables, c’est-à-dire que vous pouvez ajouter, supprimer ou remplacer des éléments dans une liste une fois qu’elle a été créée.
-
Performance : les tuples sont généralement plus rapides à créer et à accéder que les listes. Cela est dû à leur immutabilité, qui signifie qu’il n’y a pas besoin de gérer la modification des éléments dans un tuple.
-
Utilisation : les tuples sont souvent utilisés lorsque vous avez besoin de stocker des données qui ne doivent pas être modifiées, tandis que les listes sont utilisées lorsque vous avez besoin de stocker des données qui doivent être modifiées fréquemment.
2 Différences et similitudes entre tuple et listes
t = (1, 2.0, "trois")
t
type(t)
t[0]
t[1]
t[2]
len(t)
t[0] = "un"
tab = [1, 2.0, "trois"]
tab
type(tab)
tab[0]
tab[1]
tab[2]
len(tab)
tab[0] = "un"
tab
Tuple
On peut stocker plusieurs valeurs de types différents.
(1, 2.0, 'trois')
tuple
L’accès se fait par un indice entier de position qui commence à 0. On place l’indice entre des crochets.
1
2.0
'trois'
La longueur du tuple est obtenue grâce à la fonction len()
3
Les tuples sont immutables, c’est-à-dire qu’on ne peut les modifier une fois qu’ils ont été créés.
>>sortie
TypeError: 'tuple' object does not support item assignment
Liste
On peut stocker plusieurs valeurs de types différents.
[1, 2.0, 'trois']
list
L’accès se fait par un indice entier de position qui commence à 0. On place l’indice entre des crochets.
1
2.0
'trois'
La longueur de la liste est obtenue grâce à la fonction len()
3
Les listes sont mutables, c’est-à-dire qu’on peut les modifier une fois qu’elles ont été créés.
['un', 2.0, 'trois']
ATTENTION: Dans les types construits, il faut bien distinguer l’indice et la valeur stockée à cet indice.
3 Méthodes et fonctions
3.1 Qu’est-ce qu’une méthode?
Python étant un langage objet, des méthodes sont ajoutées aux tableaux pour interagir facilement avec eux.
La différence entre méthode et fonction sera approfondie en terminale lors de l’étude de la programmation orientée objet. Pour l’instant, nous pouvons simplement dire qu’il s’agit d’une fonction attachée à un objet qui s’appelle en utilisant une notation pointée.
3.2 Méthodes des tuples
Les tuples étant immuables ne présentent que deux méthodes qui sont décrites dans la documentation
ou grâce à l’appel help(tuple)
- La méthode
index
: indice de la première occurrence de l’élément cherché donné en argument. - La méthode
count
: nombre d’éléments de valeur donnée en argument.
3.3 Méthodes des listes
Les listes présentent de nombreuses méthodes en plus de celles des tuples qui vont permettre de les modifier.
Voici quelques utilisations courantes à retenir(la liste complète est dans la documentation!).
- ajouter des éléments à la liste à la fin avec la méthode
append
, ou à un indice quelconque avec la méthodeinsert
.
- supprimer des éléments de la liste à la fin avec la méthode
pop()
, ou à un indice quelconque avec la méthodepop(indice)
.
4 Utilisations courantes des tuples
4.1 Déstructuration
Il peut être pratique de récupérer les valeurs stockées dans le tuple dans des variables de type simple: on parle de déstructuration.
4.2 Permuter des variables
Habituellement, lorsque l’on souhaite permuter deux variables, il est nécessaire de passer par une troisième variable auxiliaire. Grâce aux tuples, la permutation peut se faire en une instruction.
4.3 Renvoyer plusieurs valeurs dans une fonction
Il s’agit d’une application courante des tuples. Prenons l’exemple d’une fonction qui renvoie les deux racines du trinôme.
def racines_du_trinome(a,b,c):
delta = b**2-4*a*c
if delta >= 0:
return -b-delta**0.5/(2*a), -b+delta**0.5/(2*a)
racines_du_trinome(1,0,-1)
(-1.0, 1.0)
Ici on récupère les racines par déstructuration.
5 Savoir si un tableau contient une valeur
Outre la méthode index()
, on peut utiliser l’opérateur booléen in
pur savoir si une
valeur est dans la liste.
6 Parcours séquentiel des tableaux
Les tableaux étant des structures ordonnées finies, il est facile de les parcourir dans l’ordre avec une
boucle bornée for
.
En python, on peut réaliser l’itération sur les valeurs ou sur les indices si nécessaire. Cette dernière est
plus compliquée, mais plus puissant, car on a alors accès à l’indice i
et à la
valeur tab[i]
).
6.1 Itération sur les valeurs
On fait une itération sur les valeurs du tableau en utilisant le mot-clé in
.
6.2 Itération sur les indices
C’est la méthode classique utilisée dans les langages impératifs.
>>sortie
indice: 0 valeur: 12
indice: 1 valeur: -3
indice: 2 valeur: 15
indice: 3 valeur: -9
indice: 4 valeur: 17
indice: 5 valeur: 7
Ces deux méthodes fonctionnent aussi bien avec les tuples que les listes, mais également avec les
chaînes de caractères str
.