BASE PY 3 : découverte des listes

Des boucles avec des listes

premier pas

prenons la liste t1 = [1, 2, 3, 4]

Les éléments sont numérotés, comme ça on peut facilement les retrouver, les modifier, etc... mais en python (et dans la plupart des langages informatiques) le premier élément ne porte pas le n°1, mais ne n° 0.
Au début c'est déroutant, mais on s'y habitue. En fait c'est comme les boucles, ça commence à 0 et pas à 1.

Pour connaitre l'élément 0 d'une liste, par exemple de t1 on utilise t1[0] (qui vaut 1). Évidement t1[1] sera le deuxième élément (qui est 2) et ainsi de suite...

Les boucles et les listes sont très amies, les premières permettant de "parcourir" facilement les secondes. Et cela permet de faire beaucoup de choses bien pratiques.

Exercice à réponse courte
Que va afficher ce code :
t1 = [1, 2, 3, 4]
print(t1[3])

Correct !
Exercice à réponse courte
Que va afficher ce code :
t2=["Armelle", "Julie", "Rose", "Pelajie"]
print(t2[1])

Correct !
Exercice à réponse courte
Que va afficher ce code :
t3=["Lyon", "15h10", "Paris", "16h00", "Marseille", "16h30", "Strasbourg", "18h12","Saint-Etienne", "20h40"]
print(t3[5])

Correct !

Parcours de listes

parcourir une liste

Un exemple avec t1 :

Exemple : parcourir une liste

Dans cette boucle for i prend les valeurs 0 1 2 et 3, on affiche donc t[0] puis t[1] puis t[2] et en dernier t[3].

On dit qu'on parcourt la liste, lorsque pour chacune des valeurs de la liste on fait quelques chose (ici simplement afficher la valeur)

Parcourir une liste et modifier les éléments

Dans tout les exmples ou exercices qui suivront, les 3 listes ci-dessus sont définie par le correcteur et n'apparaissent plus dans les codes.

Exemple : parcourir une liste

Dans ce cas on a modifiés tout les éléments de t1, on les a multipliés par 2. Maintenant t1 est devenue : [2, 4, 6, 8]

Bon évidement ça marche pareil pour une liste de chaines, mais rapellez vous que "Aie" * 3 = "AieAieAie":

Exemple : parcourir une liste

Des boucles un peu plus rusées...

boucles rusées

Faisons la même chose avec la liste t3 définie plus haut. Celle-ci a 8 éléments :

Exemple : parcourir une liste

Ce qui n'est pas intéressant ni très joli. En fait ici, on aimerais bien afficher sur la même ligne la destination et l'heure... Pour cela il faudrait grouper les éléments 2 à 2. Il y a des moyens pour cela en python, que nous avons déjà vu : faire une boucle avec un pas de 2 !

Exemple : parcourir une liste

Ici, i ira comme d'habitude de 0 à 7, mais on a ajouté ,2, donc il ira de 2 en 2. Ainsi i prendra les valeurs 0,2,4,6
Et on s'arrête à 6, car la valeur suivante serait 8, qui est notre limite exclue.

Il a bien affiché un élément sur 2, commençant au 1er (indice 0) jusqu'au 9ème (indice 8). Mais du coup on n'a plus les heures !
Nous allons les afficher en même temps que les villes :

Changeons juste un peu le code :

Exemple : parcourir une liste

Cest déjà beaucoup mieux non ? Bon mais ce serait encore mieux si on mettait un peu de texte dans tout ça :

Exemple : parcourir une liste

Exercice

ex 1
Exercice de code : 1 parcourir une liste
Ecrire un code qui, utilisant la liste eleve, affiche leurs nom, prénoms, et note (sans texte suplémentaire)
ex 2
Exercice de code : 2 parcourir 2 listes et faire la somme
Ecrire un code qui, utilisant les 2 listes de nombres (de même longueur), va parcourir dans une boucle la liste lst1 en la modifiant ainsi : pour chaque valeur dans lst1, la nouvelle valeur sera la somme de l'élément i de lst 1 et de l'élément i de lst2.
Par exemple, avec lst1= [1, 2, 5, 2] et lst2=[4, 2, 1, 4] la liste finale serait :[5, 4, 6, 6]