logo

Les listes

Définition

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.

Parcourir les éléments d'une liste en Python

En Python l'instruction for est conçue pour parcourir les listes.

maListe=["toto","tata","titi"]
for element in maListe:
	print element

 

Modification d'une case d'un tableau

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

 

Ajout d'un élément à un tableau

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 :

pairs=[]
for i in range(0,21,2):
	pairs.append(i)
print pairs

 

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.

Copie de listes

Si on copie la liste liste1 dans liste2 alors toute modification dans une liste se répercutera dans l'autre liste.

liste1=["toto","tata","titi"]
liste2=liste1
liste2.append("tutu")
print "liste1=",liste1
print "liste2=",liste2

 

Si on veut pouvoir modifier une liste sans modifier l'autre, il suffit d'écrire liste2=liste1[:].

liste1=["toto","tata","titi"]
liste2=liste1[:]
liste2.append("tutu")
print "liste1=",liste1
print "liste2=",liste2

 

Nombre d'éléments d'un tableau

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.

nombres=[1,5,7,12,19,21];
for i in range(len(nombres)):
	nombres[i]=nombres[i]*2
print nombres

 

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.

Autres méthodes

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.

Exercices

A vous de jouer !

Utiliser la console pour écrire votre code :

1. Réaliser un programme :

On pourra compléter le « squelette de programme » :

Ecrire un programme qui donne le reste de la division d'un nombre entier par 7 en procédant par soustractions successives.

pairs=[]
impairs=[]

# complète ici

print "nombres pairs=",pairs
print "nombres impairs=",impairs

Voir une solution

2. Ecrire un programme qui demande de saisir 5 prénoms, puis une fois la saisie terminée, les affiche dans l'ordre inverse où ils ont étés saisis.

Voir une solution

3. Ecrire le programme qui affiche la somme des léments de la liste nombres=[1,5,7,12,19,21].

Voir une solution