# V Les listes

### Principe

Une liste est une structure de données constituée d'un ensemble ordonné fini et modifiable d’objets indicés. Autrement dit, une liste est une séquence finie modifiable d’objets numérotés à partir de l'indice 0. La liste fibo = [1, 1, 2, 3, 5, 8] contient six éléments ordonnés de type int.

### Syntaxe

★ On écrit les éléments composant une liste entre crochets [ ] et séparés par des virgules.
★ On accède aux éléments de la liste en utilisant leur indice. Dans l'exemple ci-dessus, fibo[5] renvoie l'élément d'indice 5 de la liste c'est à dire 8 (sixième élément de la liste), fibo[0] renvoie l'élément d'indice 0 (le premier de la liste).

### Exemples

# liste de flottants temperatures = [7.0 ,10.0 ,12.0 ,9.5 ,11.5 ,8.0 ,10.0] # liste de chaines de caractères planetes = ["Jupiter", "Saturne", "Mars", "Terre", "Venus"] # liste de booléens reponses = [True, True, False, False, True]

★ Exécuter le programme, puis appeler temperatures[2], puis planetes[0]

### Générer une liste

#### Par affectation directe

On affecte au nom de la liste l'ensemble ordonnés de ses éléments entres crochets :
temperatures = [7.0 ,10.0 ,12.0 ,9.5 ,11.5 ,8.0 ,10.0]

#### Par ajouts successifs

La méthode .append( ) permet d'ajouter un nouvel élément en fin de liste.

cubes = [] # liste vièrge nommée cubes # on ajoute successivement les cubes des # entier de 1 à 5 en fin de liste for i in range(1, 6): cubes.append(i**3)

★ Exécuter le programme, puis appeler cubes dans la console.

#### En compréhension

Une liste en compréhension permet de créer une liste à partir d’un processus d'itération décrit entre crochets.

listecubes = [ x**3 for x in range(1,6)] pairs = [ n for n in range(10) if n % 2 == 0] nombres = [ k**2 for k in range(8) if k % 2 == 1]

★ Exécuter le programme, puis appeler listecubes, pairs, puis nombres

### Opérations sur les listes

#### Manipulation des éléments d'une liste

On onsidère la liste de températures temp ci-dessous:
temp = [7.0 ,10.0 ,12.0 ,9.5 ,11.5 ,8.0 ,10.0]

Exécuter le programme ci-dessus, puis effectuer les opérations ci-dessous dans la console.

★ temp.count(10.0) renvoie 2, c'est le nombre d'occurrences de l'élément 10.0.
★ len(temp) renvoie 7, c'est la longueur de la liste.
★ temp.sort( ) renvoie la liste dans l'ordre croissant : [5, 11, 11, 14, 20, 33, 47].
★ temp[4] = 15.0 affecte la valeur 15.0 à l'élément d'indice 4 (cinquième élément).
★ temp.remove(10.0) supprime la première ocurrence de 10.0 dans la liste.
★ temp.insert(2,17.0) insère la valeur 17.0 au rang 2 : [14, 5, 47, 20, 11, 11, 33]

### Parcourir les éléments d'une liste

Pour parcourir les éléments d'une liste, une utilise une boucle avec le mot clé in

temperatures = [7.0 ,10.0 ,12.0 ,9.5 ,11.5 ,8.0 ,10.0] def moyenne(liste): somme = 0 for t in liste: # t parcourt les éléments de la liste somme = somme + t return round(somme / 7 , 1)

★ Exécuter le programme, puis appeler la fonction moyenne(temperatures) dans la console.

### Exercices

#### Exercice 1

On considère le programme ci-dessous :

g = 9.81 h = 320 altitudes = [] # Création de la liste vide altitudes def z(t): # définition de la loi horaire return -0.5*g*t**2 + h

1. Compléter le programme ci-dessus pour générer la liste des altitudes pour t entier allant de 0 s à 7 s en utilisant la méthode append( ).
2. Vérifier votre travail en exécutant le programme et en appelant altitudes dans la console.
3. Réaliser le même exercice en générant cette fois la liste des altitudes par compréhension.

#### Exercice 2

Écrire une fonction qui renvoie la liste des multiples de 3 ou 5 strictement inférieurs à 100.

#### Exercice 3

On considère la formule de conversion d'une tempréture en degrés Farenheit d'une tempréture donnée en degrés Celsius : TF = 1,38 × TC + 32
1. Compléter la fonction farenheit qui prend en paramètre TC , température en degrés Celsius et renvoie la température correspondante en degrés Farenheit.
2. Exécuter votre programme et tester le en appelant la fonction farenheit pour différentes valeurs du paramètre.
3. Ecrire une fonction conv qui prend en paramètre une liste de tempértures en degrés Celsius et revoie la liste des températures converies en degré Farenheit.
4. Exécuter le programme et appeler conv(hebdo) pour vérifier votre travail.

hebdo = [7.5, 10.0, 12.5, 8.0, 11.0, 5.5, 13.7] def farenheit(TC):