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]
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.
En Python l'instruction for
est conçue pour parcourir les listes.
maListe=["toto","tata","titi"]
for element in maListe:
print element
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 :
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.
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
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
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.
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 . |
Utiliser la console pour écrire votre code :
1. Réaliser un programme :
qui permet à un utilisateur d'entrer une série de nombres entiers (pour indiquer la fin de la saisie l'utilisateur entre le nombre 0),
qui affiche le tableau des nombres pairs et le tableau des nombres impairs saisis.
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
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.
3. Ecrire le programme qui affiche la somme des léments de la liste nombres=[1,5,7,12,19,21]
.