Listes#
Une liste permet de conserver plusieurs valeurs dans une mĂȘme variable. Elle devient vraiment utile lorsquâon la parcourt avec une boucle ou lorsquâon veut mĂ©moriser une sĂ©rie de rĂ©sultats.
DĂšs la seconde
Comprendre une liste#
Créer une liste#
Les Ă©lĂ©ments dâune liste sont Ă©crits entre crochets et sĂ©parĂ©s par des virgules. Ils peuvent ĂȘtre des nombres, du texte ou mĂȘme un mĂ©lange des deux. Ce mĂ©lange est autorisĂ©, mais une liste de valeurs de mĂȘme nature est gĂ©nĂ©ralement plus facile Ă parcourir, comparer ou calculer.
Un Ă©lĂ©ment peut ĂȘtre ajoutĂ© Ă melange directement entre les crochets avant une nouvelle exĂ©cution.
Repérer un élément par son indice#
Les indices commencent Ă 0. Dans une liste de quatre Ă©lĂ©ments, les indices sont donc 0, 1, 2 et 3. Lâindice -1 dĂ©signe le dernier Ă©lĂ©ment.
L10203040
Un indice Ă corriger#
La liste suivante contient quatre Ă©lĂ©ments. Pourtant, le programme cherche Ă accĂ©der Ă lâindice 4.
Comment chercher ?
IndexError indique quâun indice dĂ©passe les limites de la liste. Les quatre Ă©lĂ©ments occupent les indices 0, 1, 2 et 3. Pour viser le dernier Ă©lĂ©ment sans connaĂźtre la longueur de la liste, un indice nĂ©gatif est Ă©galement possible.
Travailler avec une liste#
Parcourir une liste#
Une boucle for peut parcourir directement les Ă©lĂ©ments dâune liste. Il nâest alors pas
nécessaire de manipuler leurs indices.
Ă chaque passage, mot prend la valeur de lâĂ©lĂ©ment suivant. Remplace print(mot) par
print(len(mot)) pour afficher la longueur de chaque mot.
Calculer Ă partir dâune liste#
len(L) renvoie le nombre dâĂ©lĂ©ments dâune liste. On peut donc additionner les notes avec
une boucle puis diviser par leur nombre.
Avant dâajouter une note, il est intĂ©ressant de prĂ©voir si la moyenne va augmenter ou diminuer.
Construire une nouvelle liste#
Pour fabriquer la liste des carrĂ©s, on peut partir dâune liste vide puis ajouter un rĂ©sultat Ă chaque passage de la boucle.
Cette construction fait apparaßtre trois actions : parcourir, calculer, puis ajouter. Python propose aussi une écriture plus compacte, appelée liste en compréhension.
carres = []
for n in range(6):
carres.append(n**2)
carres = [n**2 for n in range(6)]
Les deux programmes produisent exactement la mĂȘme liste. La premiĂšre Ă©criture est souvent plus facile Ă dĂ©composer ; la seconde devient pratique lorsque la transformation est courte.
Une condition peut ĂȘtre ajoutĂ©e pour ne conserver que certaines valeurs.
Avant lâexĂ©cution, repĂšre le rĂŽle de la variable nombre et prĂ©vois les trois valeurs retenues.
Opérations utiles#
Les opĂ©rations suivantes sont pratiques pour manipuler une liste dĂ©jĂ construite. Elles peuvent aussi servir de rĂ©fĂ©rence lorsquâun exercice en a besoin.
Extraire plusieurs éléments#
La syntaxe L[a:b] extrait les Ă©lĂ©ments dâindices a Ă b-1. Comme avec range, la borne de droite est exclue.
Le rĂ©sultat de L[4:8] peut ĂȘtre prĂ©vu avant lâexĂ©cution. Les Ă©critures L[:3] et L[-2:] sont Ă©galement Ă observer.
Modifier et réunir des listes#
La mĂ©thode append() ajoute un Ă©lĂ©ment Ă la fin dâune liste existante.
Pour ajouter deux autres valeurs, il faut appeler append une fois pour chaque nouvel élément.
LâopĂ©rateur + permet de concatĂ©ner deux listes, câest-Ă -dire de les placer lâune Ă la suite de lâautre.
Avec deux listes de mots, la comparaison de L1 + L2 et L2 + L1 montre lâimportance de lâordre.
Rechercher et trier#
index() renvoie la position de la premiĂšre occurrence dâune valeur.
Que se passe-t-il si la valeur cherchĂ©e nâest pas prĂ©sente ? Le message obtenu est utile : index ne peut pas inventer une position.
sorted(L) produit une nouvelle liste triée sans modifier directement L.
Les deux affichages montrent que la liste initiale nâa pas changĂ©. Pour conserver la liste triĂ©e, il faudrait par exemple Ă©crire L_triee = sorted(L).
Retirer un élément#
La mĂ©thode remove() retire la premiĂšre occurrence dâune valeur. Elle provoque une erreur
si cette valeur nâest pas prĂ©sente : il faut donc parfois vĂ©rifier avant dâagir.
Lâexpression valeur in liste renvoie True lorsque la valeur est prĂ©sente et False
sinon. Elle permet ici dâĂ©viter dâappeler remove sur une valeur absente.
Une seule occurrence a disparu. Modifie la valeur recherchĂ©e et observe lâeffet de la condition.
Exercices#
Exercice 1
CrĂ©er une liste contenant les nombres 5, 10 et 15, puis lâafficher.
Exercice 2
Créer une liste contenant trois mots, puis afficher son dernier élément.
Exercice 3
Créer deux listes, les concaténer et afficher le résultat.
Exercice 4
CrĂ©er une liste dâau moins sept nombres, puis afficher les Ă©lĂ©ments dâindices 2 Ă 5 inclus.
Exercice 5
Construire, en comprĂ©hension, la liste des carrĂ©s des entiers de 1 Ă 10 et lâafficher.
Exercice 6
Ă partir de valeurs = [4, 11, 7, 18, 2, 13], construire une nouvelle liste ne contenant
que les valeurs strictement supĂ©rieures Ă 10. La liste initiale ne doit pas ĂȘtre modifiĂ©e.
Exercice 7
Dans la liste notes = [12, 8, 15, 8, 17], retirer une seule fois la note 8, puis afficher
la liste obtenue.
Dans le parcours