Une liste est un type de variable qui peut contenir plusieurs valeurs.
Les différentes valeurs sont rangées dans les « cases » de la liste numérotées à partir de 0.
Dans le programme ci-dessous nous déclarons une liste qui contient trois chaînes de caractères et nous les faisons afficher.
maListe=["toto","tata","titi"]
print maListe[0]
print maListe[1]
print maListe[2]
Comment cela fonctionne-t-il ?
Pour définir une liste nous mettons les différents éléments entre crochets et séparés par des virgules.
Pour accéder aux éléments du tableau nous écrivons le nom de la variable suivie de crochets avec le numéro de la case voulue.
Ainsi, maListe[0]
, maListe[1]
et maListe[2]
sont trois variables qui correspondent aux 3 cases du tableau.
On peut créer une liste composée d'un même élément avec la synthaxe suivante :
En Python l'instruction for
est conçue pour parcourir les listes.
maListe=["toto","tata","titi"]
for element in maListe:
print element
in
L'instruction in
permet de tester si un élément est dans une liste 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 une liste.
Exemple d'un programme qui test si 0
appartient à une liste.
Pour modifier la valeur d'une case d'une liste, on procède comme avec une variable classique, par exemple l'instruction ci-dessous modifie le contenu de la case numérotée 1 et remplace la chaîne de caractères "tata"
par la chaîne de caractères "tutu"
.
maListe=["toto","tata","titi"]
maListe[1]="tutu"
print maListe
Comme une chaîne de caractères, une liste est un objet du langage Python, c'est à dire qu'une liste contient des propriétés et des méthodes qui sont accessibles par la notation pointée.
En particulier il existe une méthode pour ajouter un élément à la fin d'un tableau : la méthode append
. Nous utilisons cette fonctionnalité dans le programme suivant :
Comment cela fonctionne-t-il ?
Au départ, la variable pairs
reçoit une liste vide représenté par []
.
A chaque tour de boucle, la méthode append
, utilisée en écrivant pairs.append(i);
, permet d'ajouter la valeur de i
à la fin de la liste.
Lorsque la boucle est terminée, la liste contient tous les nombres pairs de 0 à 20.
Si on copie la liste liste1
dans liste2
alors toute modification dans une liste se répercutera dans l'autre liste.
Si on veut pouvoir modifier une liste sans modifier l'autre, il suffit d'écrire liste2=liste1[:]
.
Pour connaître le nombre d'éléments d'une liste il faut utiliser la propriété len
de l'objet liste, exactement comme pour connaître le nombre de caractères d'une chaîne.
Dans le programme ci-dessous nous parcourrons la liste de nombres pour doubler toutes les valeurs.
Comment cela fonctionne-t-il ?
Les éléments de la liste nombres
sont numérotées de 0 à len(nombres)
, nous parcourons tous les éléments de la liste grâce à la boucle dans laquelle i
varie de 0 à len(nombres)
.
Pour chacun des éléments de la liste, nous remplaçons la valeur par son double.
Parfois il peut être utile de transformer une chaine de caractère en liste. Cela est possible avec la méthode split
.
Il existe plusieurs autres méthodes pour manipuler les listes en Python, voir le tableau :
Methode | Description |
---|---|
del liste[n] |
Supprimme l'élément qui est en position n dans liste . |
liste.remove("a") |
Supprime les éléments qui ont la valeur "a" dans liste . |
liste.count("a") |
Compte le nombre de "a" dans liste . |
liste.index("a") |
Repère la première position de "a" dans liste . |
liste1 + liste2 |
Les éléments de liste2 se rajoutent à liste1 . |
liste[-1] |
Donne le dernier élément de liste . |
liste[:n] |
Donne la sous-liste formée des n premiers éléments de liste . |
liste[n:] |
Donne la sous-liste privée des n premiers éléments de liste . |
La compréhension de liste est une expression qui permet de construire une liste à partir de tout autre type itérable (liste, chaîne de caractères…). Le résultat obtenu est toujours une liste.
Exemples et synthaxesOn peut générer la liste des nombres pairs par compréhension :
On peut rajouter une condition :
On peut utiliser des chaines de caractères :
Nous avons déjà vu les liste, des tableaux à une dimension, nous allons maintenant nous pencher sur les tableaux à deux dimensions.
Nous allons définir ces tableaux à l’aide de liste de listes.
Supposons que nous voulions créer un tableau de 10 lignes et de 5 colonnes contenant des 0.
Nous pouvons utiliser la syntaxe mon_tableau=[[0,0,0,0,0,0,0,0,0,0],[0…..]……] mais qui est pénible.
Il existe une méthode plus simple :
Soit T un tableau à deux dimensions :
T=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
Il s’agit de trois listes d’entiers. L’élément T[i][j] correspond au jème élément de la ième liste. Attention, on compte à partir de 0.
Pour parcourir un tableau, il faut utiliser une double boucle : la première pour séparer les sous-listes et la deuxième pour développer chaque sous-liste.
Pour avoir un affichage ressemblant à un tableau :
Pour classer dans un tableau à deux dimensions, il faut choisir un critère de classement.
Exemple
T=[["jean",14],["Paul",8],["Emma",12],["Luc",7],["Lise",15]]
Ici, l’on peut classer par ordre alphabétique ou par notes croissantes ou décroissantes.
Il va falloir préciser si l’on trie suivant l’élément 0
de la liste ou l’élément 1
.
La méthode sorted
est ici adaptée, avec la syntaxe suivante :