Prérequis pour ce cours:
- Les boucles et instructions conditionnelles
- Les fonctions
Rappel sur le parcours de listes avec les indices
Les listes sont maintenant des objets familiers, vous y êtes habitués. Rappelons ce que nous avons déjà vu, concernant les parcours de listes :
Dans le code ci-dessus on parcours la liste lst, et pour chaque élément on affiche la valeur. Mais ce n'est pas très pratique car pour faire ce parcours séquentiel (on référence séquentiellement les valeurs de la liste) on a besoin, dans le in range(..) de connaître le nombre d'éléments de la liste.
la commande len(liste) nous donne le nombre d'éléments de la liste.
Le code ci-dessus peut donc être écrit ainsi :
Ajoutez des éléments dans la liste pour observer que le parcours s'effectue toujours correctement sur tousles éléments jusqu'à la fin.
Vous avez déjà vu comment on peut accéder à la valeur d'un élément du tableau. Il est aussi possible d'accéder à une partie du tableau.
Ce code affiche un tableau avec les éléments de lst de l'indice 2 à l'indice 4, c'est à dire [2,3,4]
Souvent on souhaite en réalité une partie de longueur variable, par exemple tous les éléments du tableau à partir du 3ème. Pour cela on omet l'indice de fin, cela signifie : jusqu'à la fin
Ce code affiche un tableau avec les éléments de lst de l'indice 5 jusqu'à la fin : [5,6,7]
De la même façon on peut omettre l'indice de début, ceci signifiant qu'on prend tout depuis le début :
Ce code affiche un tableau avec les éléments de lst du début jusqu'à l'indice 4, c'est à dire [0,1,2,3,4]
Enfin, une spécificité de Python (rarement disponible dans d'autres langages), est d'utiliser une syntaxe avec des valeurs négatives. Les indices négatifs n'existent pas, mais en python ils sont interprété comme "en partant de la fin". Ainsi :
Ce code affiche la dernière valeur de lst : 7
Et bien sur on peut combiner cette dernière notation avec les slices :
Ce code affiche les valeur de la première à l'avant dernière : [0,1,2,3,4,5,6]
Parcours de liste sur les éléments
Il existe une autre façon de parcourir une liste, qui n'utilise pas les indices des éléments, mais les éléments eux mêmes :
Le code ci-dessus parcours aussi la liste lst, et pour chaque élément on affiche la valeur. Mais au lieu d'avoir un indice i allant de 0 à len(lst)-1, i prend successivement les valeurs des éléments de la liste.
Ces deux façons de parcourir une liste sont fondamentales et doivent être bien comprises. |
Exercice
Vous donnerez la solution en utilisant un parcours de listes sur les indices. L'algorithme est le suivant : max ← tab[0] l'algorithme ci contre est donné en faisant un parcours sur les indices, pour le parcours sur les éléments vous devrez adapter... Python est un langage très orienté objets. Pour le moment vous ne pouvez pas savoir ce que cela signifie mais on va simplement résumer cela en trois idées : Pour le moment vous n'avez pas besoin d'en savoir davantage sur les objets, mais vous allez dès à présent découvrir les méthodes de l'objet liste. exemple 1 : exemple 2 : exemple 3 : Il existe plusieurs façon de retirer des éléments d'une liste : Ceci n'est pas une méthode à proprement parler et sa syntaxe est donc différente : del a[i] et non a.del(i) comme pour remove ou pop a vaut : [1,2,4,3,2,1] après exécution de ce code. ce code génère une erreur : IndexError: list assignment index out of range car 15 > len(a) cette méthode ressemble beaucoup à la précédente mais Typiquement c'est la méthode pour un tirage sans remise, type le loto : x in a : True si x est un élément de la liste a, False sinon. D'autres instructions sont importantes et doivent être connues (voir plus ici) mais nous les verrons ultérieurement. lst.count() lst.reverse() lst.index()
Vous donnerez la solution en utilisant un parcours de listes sur les indices, puis une autre en utilisant le parcours de liste sur les éléments.
pour i allant de 1 à N-1 :
si tab[i]>max:
max ← tab[i]
renvoyer maxCommandes essentielles
Préambule : objets, attributs et méthodes
la méthode append() : lst.append(element) ajoute un élément à la fin de la liste.
La méthode remove : a.remove(element) retire la 1ère occurence de element dans la listeExemple 1
Ce code génère une erreur : ValueError: list.remove(x): x not in list car 13 n'est pas dans la liste. La fonction del : del a[i] supprime l'élément à l'indice i
La méthode pop() : a.pop(i) : supprime l'element d'indice i et renvoie sa valeur.
>>> a=[1,2,3,4,3,2,1]
>>> 3 in a
True
>>> 13 in a
False
convertir une chaîne en liste :
Convertir une liste en chaine, avec join :