Exercice – Représentations des données : types construits

Tableaux-listes

Tableaux – Listes 

 

Définition

 

Un tableau ou liste est une structure ordonnée de données placées les unes à la suite des autres.

Dans ce qui suit, la commande >> indique une sortie du logiciel, c’est à dire ce que le logiciel affiche.

 

On crée une liste L.

L = [1, 2, "JUDITH", 3.14]

La commande print(L) permet d’afficher la liste. 

Pour ajouter un élément en fin de liste, on utilise la fonction .append.

L.append(4)

On peut alors regarder la nouvelles valeur de L.

print(L)
>> [1, 2, "JUDITH", 3.14, 4]

 

Pour supprimer un élément de la liste, on utilise la fonction .remove.

L.remove("JUDITH")
print(L)
>> [1, 2, 3.14, 4]

Chaque élément de la liste est numéroté : on parle d’indice ou d’index. La numérotation commence à 0. 

L’élément d’indice 0 correspond donc au premier élément de liste.

Si on utilise un indice trop grand par rapport à la taille de la liste, le logiciel retourne un message d’erreur. 

 

Exemple :

print(L[0])
>> 1

 

On peut aussi accéder directement aux derniers éléments de la liste.

Exemples :

print(L[-1]) retourne la valeur du dernier élément de la liste
>> 4
print(L[-2]) retourne la valeur de l’avant dernier élément de la liste
>> 3.14

 

La fonction in permet d’accéder aux valeur d’une liste.

Exemple :

if 2 in L : (si 2 appartient à la liste L)
   print("OK")
else : (sinon)
   print("NON")
>> "OK" (car 2 appartient à la liste L)

 

Enfin, la fonction .index permet d’accéder à l’indice d’un élément.

Si cet élément n’appartient pas à la liste, l’ordinateur retourne un message d’erreur. Si l’élément apparait plusieurs fois, l’ordinateur retourne l’indice le plus petit.

Exemple :
L.index(2)
>> 1

Itérer sur les éléments d'une liste - Liste de compréhension

Itérer sur les éléments d’une liste – Liste en compréhension

 

L’objectif du cours est, à travers des exemples, de montrer l’itération sur les éléments d’une liste, que l’on peut construire en compréhension.

En parcourant une liste initiale et en effectuant une opération, on crée une nouvelle liste, qui est une sous liste de la liste principale. C’est la construction en compréhension.

 

On définit un tableau L par :
L = [10, 20, 30, 40, 50]

On souhaite calculer la somme des éléments de L.
On commence pour cela par créer une variable qui contiendra la somme, que l’on initialise à 0.

somme = 0
for i in L: #on parcourt les éléments du tableau L
   somme = somme + i 
print(somme)
>> 150 

On peut créer une liste en compréhension à l’aide de liste pré enregistrée.
Par exemple, on souhaite créer une liste contenant les entiers pairs compris entre $1$ et $12$ à l’aide d’une liste contenant tous les entiers entre $1$ et $12$. 

pair = [] #on crée une liste qui contiendra les entiers pairs
for n in range(1,13): #on crée une liste d’entiers allant de 1 à 12
    if n%2==0: #si le reste de la division euclidienne de l’entier par 2 est nul, alors le nombre est pair
       pair.append(n) #on ajoute à la liste pair l’entier n
print(pair)
>> [2, 4, 6, 8, 10, 12]

Une manière plus succincte de définir pair en compréhension est :

pair = [n for n in range(1,13) if n%2==0]

On souhaite ici créer une liste carre en compréhension.

carre = []
for i in range(1,16): #on parcourt les entiers allant de 1 à 15 inclus
   carre.append(n**2) #on ajoute à la liste carre le carré de n
print(carre)
>> [1, 4, 9, 16, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225]

Une autre manière de créer la liste carre est :
carre = [n**2 for n in range(1, 16)]

Enfin, on souhaite créer une liste syracuse à partir d’une liste d’entiers de 1 à 20.
Si l’élément est pair, on le divise par deux, sinon on multiplie l’élement par 3 puis on ajoute 1.

syracuse = [n/2 if n%2==0 else 3*n+1 for n in range(1, 21)]