Tableaux

type list

Objectifs

  • Connaître l'interface d'un tableau,
  • Créer un tableau,
  • Accéder et modifier un élément,
  • Ajouter des éléments,
  • Parcourir les éléments d'un tableau,
  • Connaître les algorithmes de base sur les tableaux.

Définition

tableau

En informatique, un tableau est une structure de données représentant une séquence finie d'éléments auxquels on peut accéder efficacement par leur position, nommée indice, dans la séquence.

tableau en python

Python implémente les tableaux dans le type list.
De ce fait, il y a une confusion entre les listes, telles qu'elles sont définies en informatique (nous verrons cette définition plus tard dans l'année de terminale) et le type list de Python.

Initialisation d'un tableau

En python, les tableaux sont contenus dans des crochets [ ... ]
Les éléments sont séparés par des virgules ,
[ élement1 , élement2 , élement3 ]

Tableau vide


Il est possible de créer un tableau vide

# Créer un tableau vide
mon_tableau = []

Tableau non vide


Il est aussi possible de l'initialiser avec des valeurs

# Créer un tableau à partir de valeurs
>>> mon_tableau = ["Alan", "Ada", "Grace", "Ian"]
["Alan", "Ada", "Grace", "Ian"]

Tableau de valeurs identiques

Enfin si l'on veut, il est aussi possible de l'initialiser avec les mêmes valeurs

# Créer un tableau contenant 5 zéros
>>> mon_tableau = [0]*5
[0, 0 , 0, 0, 0]

Accéder à un élément

Pour accéder à un élément, on utilise son index (sa position dans la liste)

L'index d'une liste commence à 0.

[\underbrace{\text{"Fraise"}}_{0}, \underbrace{\text{"Litchi"}}_{1}, \underbrace{\text{"Banane"}}_{2}, \underbrace{\text{"Mangue"}}_{3}]

Accéder à un élément

L'instruction pour accéder à un élément est construite à partir du nom du tableau et de l'index (la position) de l’élément souhaité entre crochets [].

Accéder à un élément

Le tableau s'appelle fruits et l'élément Banane est en position 2 (c'est le 3ème de la liste).

On accède donc à cet élément avec l'instruction

>>> fruits = ["Fraise", "Litchi", "Banane", "Mangue"]
>>> print(fruits[2])
"Banane"

Les index négatifs



Comment accéder aux derniers éléments d'un tableau ?


Les index négatifs



Pour atteindre le dernier élément d'un tableau, il faudrait connaître le nombre total d'éléments du tableau (ne utilisant la fonction len) et lui soustraire 1.



notes = [12, 14, 11, 16, 17, 15, 18, 15, 19, 14, 17]
nb_notes = len(notes)
print(notes[nb_notes - 1])





notes = [12, 14, 11, 16, 17, 15, 18, 15, 19, 14, 17]
print( notes[len(notes) - 1])





notes = [12, 14, 11, 16, 17, 15, 18, 15, 19, 14, 17]
print( notes[-1])


Exercice 1

On considère le code suivant :

tab = ["Alan", "Ada", "Grace", "Ian", "Charles", "Guido"]
Que vaut tab[3] ?

Exercice 2

Après l'affectation suivante :

alphabet = [ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
'M', 'N','O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' ]
Quelle instruction permet d'accéder à la lettre E ?


Quelle instruction permet d'accéder à la lettre Y ?

Modification d'un élément

Modification

Pour modifier la valeur d'un élément, il faut acceder à cet élément par son index et lui affecter une nouvelle valeur à l'aide du signe =.

nom_tableau[index ] = nouvelle valeur

Exemple


Quel affichage résultera de L’exécution du code ci-dessous ?

informaticiens= ["Alan", "Ada", "Grace", "Ian"]
informaticiens[1] = "Ada Lovelace"
print(informaticiens)
    

Exemple


Quel affichage résultera de l’exécution du code ci-dessous ?

    informaticiens = ["Alan", "Ada", "Grace", "Ian"]
    informaticiens[1] = "Ada Lovelace"
    print(informaticiens)
    ["Alan", "Ada Lovelace", "Grace", "Ian"]
    

Parcourir un tableau

Parcourir un tableau

Il existe deux manières de parcourir les éléments d'une liste :
  • Parcourir une liste à partir des index des éléments
  • Parcourir une liste par itération sur les éléments

Parcours à partir de l'index des éléments

En python, les tableaux (list) fonction taille len( ) donnant le nombre d'éléments contenus dans la liste.
Associer à la fonction range(), on obtient un itérable composé de tous les index des éléments de la liste.

Parcours à partir de l'index des éléments


mon_tableau = ["Alan", "Ada", "Grace", "Ian"]
for index in range(len(mon_tableau)):
    print(mon_tableau[index])

Dans cet exemple, la longueur de mon_tableau est 6.
L'instruction range(len(mon_tableau)) va être successivement évaluée par range(6) puis par un itérable de longueur 4 qui contiendra les valeurs 0, 1, 2 et 4 qui seront successivement données à la variable index.

Exercice

On considère le code suivant :

def feed(t):
    for i in range(len(t)):
        t[i] = t[i] + 1
    return t
    
Que renvoie l'instruction feed([12, 24, 32]) ?

Exercice

On considère le code suivant :

def feed2(t):
    for i in range(len(t)):
        t[i] = t[i] + i
    return t
    
Que renvoie l'instruction feed([12, 24, 32]) ?

Itération des éléments

Comme pour tout les itérables, il est aussi possible de parcourir un tableau en itérant les éléments du tableau, avec les instructions

for v in iterable.

Exemple


mon_tableau = ["Grace", "Ian", "Charles", "Guido"]
for elmt in mon_tableau:
    print(elmt)

Dans cet exemple, la variable elmt prendra successivement les valeurs contenues dans la variable mon_tableau, c'est à dire "Alan", "Ada", "Grace", "Ian".

remarque

Il est souvent utile de bien nommée la variable créée dans la boucle for. Ainsi pour le code précédent, il aurait été préférable d'écrire :


mon_tableau = ["Grace", "Ian", "Charles", "Guido"]
for informaticien in mon_tableau:
    print(informaticien)

Exercice

On considère le code suivant :

tab = [1, 2, 3, 4, 5]
somme = 0
for nombre in range(len(t)):
    somme = somme + nombre
    
Que vaudra la variable somme après exécution du code ci-dessus ?

Ajouter des éléments

Méthodes

Il existe plusieurs façons d'ajouter des éléments à un tableau donné.
On peut :

  • ajouter un élément,
  • étendre un tableau à partir d'un second tableaux,
  • concaténer 2 tableaux pour en former un troisième.

Ajouter un élément


Pour ajouter un seul élément, on utilise la méthode append. La méthode append modifie sur place l'objet tableau qui l'appelle.

mon_tableau = ["Alan", "Ada", "Grace", "Ian"]
mon_tableau.append("George")
print(mon_tableau)
["Alan", "Ada", "Grace", "Ian", "George"]


Étendre une liste


Pour ajouter un tableau d'élément à un tableau existant, on utilise la méthode extend. La méthode extend modifie sur place l'objet tableau qui l'appelle.

mon_tableau = ["Alan", "Ada", "Grace", "Ian"]
tableau_2 = ["Charles", "Guido"]
mon_tableau.extend(tableau_2)
print(mon_tableau)
["Alan", "Ada", "Grace", "Ian", "Charles", "Guido"]

Ajout par concaténation


Il est aussi possible de concaténer 2 listes pour en créer une troisième à l'aide de l'instruction +.

tableau_1 = ["Alan", "Ada", "Grace", "Ian"]
tableau_2 = ["Charles", "Guido"]
mon_tableau = tableau_1 + tableau_2
print(mon_tableau)
["Alan", "Ada", "Grace", "Ian", "Charles", "Guido"]

Suppression d'un éléments

La méthode pop()

La méthode pop() appelé sans paramètre permet de supprimer le dernier élément d'un tableau.

informaticiens = ["Alan", "Ada", "Grace", "Ian"]
informaticiens.pop()
# ["Alan", "Ada", "Grace"]

La méthode pop(nb) appelé avec pour paramètre un entier nb permet de supprimer l'élément d'index nb.

informaticiens = ["Alan", "Ada", "Grace", "Ian"]
informaticiens.pop(1)
# ["Alan", "Grace", "Ian"]

D'autres méthodes

Dans toute cette section, on considérera la liste nombres.
Les instructions sont considérées être effectuées les une à la suites des autres.

nombres = [17, 38, 10, 25, 72]

Ordonner la liste

La méthode sort permet de classer les éléments du tableau par ordre croissant

nombres = [17, 38, 10, 25, 72]
nombres.sort()
print(nombres)
# Affiche  [10, 17, 25, 38, 72]

Inverser les éléments d'un tableau

La méthode reverse permet de renverser l'ordre des éléments du tableau.

nombres = [17, 38, 10, 25, 72]
nombres.reverse()
print(nombres)
# Affiche  [72, 38, 25, 17, 10]

Supprimer des éléments

Pour supprimer la première occurrence d'une valeur.

nombres.remove(38)
print(nombres)
# Affiche [72, 25, 17, 10]

Position d'un élément

On peut récupérer la position d'un élément à partir de sa valeur à l'aide de la méthode index()

liste = [72, 25, 17, 25 ]
print(nombres.index(17))
# Affiche  2

Algorithme

Fonction Nombre d’occurrences


Fonction recherche
Fonction recherche2
Fonction recherche3
Fonction moyenne
Fonction moyenne2